Как вы это делаете, когда вы удерживаете Left Alt, он удерживает левую кнопку мыши в AutoHotKey?

Есть 5 шагов. Я часто использую этот метод для вывода inline svg.

  1. получить inline svg-элемент для вывода.
  2. получить источник svg с помощью XMLSerializer.
  3. добавить пространства имен svg и xlink.
  4. построить схему данных url из svg методом encodeURIComponent.
  5. установить этот url в атрибут href некоторого элемента «a» и нажать правой кнопкой эту ссылку, чтобы загрузить svg файла.

//get svg element.
var svg = document.getElementById("svg");

//get svg source.
var serializer = new XMLSerializer();
var source = serializer.serializeToString(svg);

//add name spaces.
if(!source.match(/^<svg[^>]+xmlns="http\:\/\/www\.w3\.org\/2000\/svg"/)){
    source = source.replace(/^<svg/, '<svg xmlns="http://www.w3.org/2000/svg"');
}
if(!source.match(/^<svg[^>]+"http\:\/\/www\.w3\.org\/1999\/xlink"/)){
    source = source.replace(/^<svg/, '<svg xmlns:xlink="http://www.w3.org/1999/xlink"');
}

//add xml declaration
source = '<?xml version="1.0" standalone="no"?>\r\n' + source;

//convert svg source to URI data scheme.
var url = "data:image/svg+xml;charset=utf-8,"+encodeURIComponent(source);

//set url value to a element's href attribute.
document.getElementById("link").href = url;
//you can download svg file by right click menu.
-1
задан hifumi 13 July 2018 в 18:24
поделиться