监视错误:
const SVG = document.querySelector('svg')!;
const XML = new XMLSerializer().serializeToString(SVG);
const SVG64 = btoa(XML);
const img = new Image();
img.height = 500;
img.width = 500;
img.src = 'data:image/svg+xml;base64,' + SVG64;
document.getElementById('container')!.appendChild(img);
SVG:<br/>
<svg xmlns="http://www.w3.org/2000/svg" width="50" height="50">
<circle cx="25" cy="25" r="20" />
</svg>
<hr/>
<div id="container" style="background: red;">
</div>
你好像有意见
!
标志:
document.querySelector('svg')!
canvas.getContext('2d')!
,
document.getElementById('container')!
作为良好实践,请打开浏览器的“检查器”面板的“控制台”选项卡以查看错误消息。
经过长时间的讨论,我了解到您的js代码位于html元素之上。
检查这个:
window.onload = function() {
renderSVG();
}
const renderSVG = function() {
const container = document.getElementById('container');
const svg = document.querySelector('svg');
if (container && svg) { // since You want to check existence of elements
const XML = new XMLSerializer().serializeToString(svg);
const SVG64 = btoa(XML);
const img = new Image();
img.height = 500;
img.width = 500;
img.src = 'data:image/svg+xml;base64,' + SVG64;
container.appendChild(img);
}
};
SVG:<br/>
<circle cx=“25”cy=“25”r=“20”/>
</svg>
<hr/>
<div id=“container”style=“background:red;”gt;