Javascript 将 base64 SVG 放入 HTML DOM 的最简单方法?
The easiet way to put a base64 SVG into HTML DOM by Javascript?
现在,我实际上是在 CSS 中使用 Base64 SVG 作为背景图像。但是我喜欢把SVG写成HTML这样就可以方便的通过CSS修改SVG的颜色...
所以问题来了:如何将 Base64 SVG 转换为 SVG 标签并放入我的 DOM?
var base64SVG = $('#svgHolder').css('background-image');
base64SVG = base64SVG.replace('url("', '').replace('")', '');
// Now I have a Base64 SVG, so what else should I do to be able to put in into the DOM?
实际上base64SVG
变量的内容如下:
var base64SVG = "data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='#ccc'/%3E%3C/svg%3E";
我找到了实现此目的的方法:
var svg = decodeURI($('#svgHolder').css('background-image').replace('url("data:image/svg+xml;charset=utf8,', '').replace('")', ''));
$('#svgHolder').append(svg); // append the SVG image into the element
$('#svgHolder').css('background-image', 'none'); // And remove the cssbackground-image, as we don't need it anymore
效果很好!但如果有人知道更好的方法,我会很高兴知道:)
现在,我实际上是在 CSS 中使用 Base64 SVG 作为背景图像。但是我喜欢把SVG写成HTML这样就可以方便的通过CSS修改SVG的颜色...
所以问题来了:如何将 Base64 SVG 转换为 SVG 标签并放入我的 DOM?
var base64SVG = $('#svgHolder').css('background-image');
base64SVG = base64SVG.replace('url("', '').replace('")', '');
// Now I have a Base64 SVG, so what else should I do to be able to put in into the DOM?
实际上base64SVG
变量的内容如下:
var base64SVG = "data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='#ccc'/%3E%3C/svg%3E";
我找到了实现此目的的方法:
var svg = decodeURI($('#svgHolder').css('background-image').replace('url("data:image/svg+xml;charset=utf8,', '').replace('")', ''));
$('#svgHolder').append(svg); // append the SVG image into the element
$('#svgHolder').css('background-image', 'none'); // And remove the cssbackground-image, as we don't need it anymore
效果很好!但如果有人知道更好的方法,我会很高兴知道:)