我对嵌入标签中的 SVG 有一个小问题。我用 javascript 的 SVG 文件路径更新了 embed 标记的源。然后我必须更新 viewbox 属性以正确调整 SVG 的大小。
问题是 SVG 标签不可用,因为 javascript 执行速度太快。
一个例子 :
//Creation and insertion by JQuery
var EmbedTag = $("<embed id='zoomSVG' src=idSVG + ".svg' type='image/svg+xml' width='500px' height='500px' />").appendTo(zoomGalleryHisto);
//This doesn't work : svgDoc is null
//SVG document recovery
var svgDoc = document.getElementById('zoomSVG').getSVGDocument();
This work :
setTimeout(function(){
//SVG document recovery
var svgDoc = document.getElementById('zoomSVG').getSVGDocument();
},100);
我不想使用 setTimeout 函数,因为超时值取决于硬件。有时 100 毫秒可以正常工作,但我必须找到一个通用的解决方案。
嵌入标签插入后,我可以通过 javascript 重新加载 DOM 吗?嵌入对象的加载完成后,嵌入标签是否存在现有事件?
谢谢你的帮助