使用javascript用SVG代码填充对象标记

使用javascript用SVG代码填充对象标记,javascript,svg,dynamically-generated,object-tag,Javascript,Svg,Dynamically Generated,Object Tag,我确实有可用的svg代码作为javascript变量中的文本。我需要将它设置为对象标记中的图像(不是SVG或IMG)。这可能吗 这在中进行了讨论,没有任何回应。有几种方法可以做到这一点,但它们并不都允许您访问对象的contentDocument 最简单的方法是将SVG标记转换为数据URI 但是浏览器会认为这个文档是一个跨来源的资源,然后禁止你通过JS访问它。 //svg字符串 常量svgStr=` `; //作为数据URI constdatauri='数据:image/svg+xml;字符集=

我确实有可用的svg代码作为javascript变量中的文本。我需要将它设置为对象标记中的图像(不是SVG或IMG)。这可能吗


这在中进行了讨论,没有任何回应。

有几种方法可以做到这一点,但它们并不都允许您访问对象的contentDocument

最简单的方法是将SVG标记转换为数据URI

<>但是浏览器会认为这个文档是一个跨来源的资源,然后禁止你通过JS访问它。

//svg字符串
常量svgStr=`
`;
//作为数据URI
constdatauri='数据:image/svg+xml;字符集=utf8,'+encodeURIComponent(svgStr);
obj.data=dataURI;
//加载后进行一些检查
obj.onload=e=>{
console.log('loaded');
试试{
log(obj.contentDocument.documentElement.nodeName);
}
捕捉(错误){
log('但无法访问文档…');
控制台错误(err);
}
};

对于empty.html,我浪费了对服务器的http请求,并且它不能被缓存,因为它是对象的数据源element@Nillus是的,您将发出http请求。。。一个28字节的文件(只需要
)。