[英]Waiting for element load after page has loaded
我有一个从文件加载SVG Dom的函数。 目前,它创建一个embed
元素并将其放在文档中,然后等待它加载onload
事件。 但是,显然,在页面加载后,不会为放置在文档中的元素onload
。 有没有办法可以在元素加载完成后注册要调用的函数?
这就是我所拥有的:
function loadSVG(svgFilename, callback)
{
// Loads data from an svg file
// loadSVG(
// svgFilename, // The path to the file to load
// callback // The function to be called with the
// // SVG document once it loads.
// );
var embed = document.createElement("embed");
embed.src = svgFilename;
embed.onload = function() // Doesn't get called because page has already loaded
{
var doc = embed.getSVGDocument();
document.getElementById("SVGLoader").removeChild(embed);
callback(doc);
};
document.getElementById("SVGLoader").appendChild(embed);
}
我想出了问题,我在一个div
标签中加载了SVG文件,该标签隐藏了style="display:none"
。 出于某种原因,浏览器在此标记中没有加载embed
。 当我删除style属性时,onload事件以我期望的方式触发。
如果您可以控制SVG文档,是否可以在其中添加一个在浏览器窗口中调用函数的脚本?
或者,正如该问题的答案所示,轮询以查看SVG文档是否已完成加载。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.