3 回答
TA贡献1833条经验 获得超4个赞
您可以尝试每隔一段时间进行一次轮询。
function checkReady() {
var svg = document.getElementById("chart").getSVGDocument();
if (svg == null) {
setTimeout("checkReady()", 300);
} else {
...
}
}
TA贡献1802条经验 获得超5个赞
在主文档中的嵌入元素(例如'embed','object','iframe')上,添加一个onload调用函数的属性,或在脚本中添加事件监听器,例如embeddingElm.addEventListener('load', callbackFunction, false)。另一个选择可能是听DOMContentLoaded,具体取决于您想要听什么。
您还可以在主文档上添加一个加载侦听器。jQuery(document).ready并不意味着所有资源都已加载,仅意味着文档本身具有一个可供操作的DOM。但是请注意,如果您侦听整个文档的加载,则只有在加载该文档中的所有资源,css,javascript等之后,才会调用回调函数。
如果您使用内嵌svg,则jQuery(document).ready可以正常工作。
进一步说明,您可能需要考虑使用embeddingElm.contentDocument(如果有)而不是embeddingElm.getSVGDocument()。
TA贡献1828条经验 获得超3个赞
您可以使用onload事件进行检查。
假设some.svg嵌入在对象标签中:
<body>
<object id="svgholder" data="some.svg" type="image/svg+xml"></object>
</body>
jQuery的
var svgholder = $('body').find("object#svgholder");
svgholder.load("image/svg+xml", function() {
alert("some svg loaded");
});
javascript
var svgholder = document.getElementById("svgholder");
svgholder.onload = function() {
alert("some svg loaded");
}
添加回答
举报