javascript - 嵌入的 svg 何时实际加载,我如何检查它是否加载

标签 javascript html dom svg addeventlistener

我已将 svg 嵌入到 html 对象标记中。我遇到了一种情况,我需要检查对象元素中的 svg 是否实际加载。

<object id="object_id" data='some_svg.svg'></object>

我尝试使用以下代码进行检查。

document.getElementById('object_id').contentDocument.getElementsByTagName('svg')[0]

在各种情况下:

情况1:

<object id="object_id" data="some_svg.svg">
    #document
</object

情况2:

<object id="object_id" data="some_svg.svg">
    #document
        <svg>
            // content of the svg path etc.
        </svg>
</object

我如何确认嵌入的 svg 已正确加载。

注意:addEventListener 并不能解决问题。图像可能在事件监听器实际注册之前已加载

最佳答案

尝试使用window.load()方法等待DOM,以及所有HTML内容加载(所有图像、CSS 等),然后执行,如下所示:

window.addEventListener('load', function()
{
    document.getElementById('object_id').contentDocument.getElementsByTagName('svg')[0]
});

关于javascript - 嵌入的 svg 何时实际加载,我如何检查它是否加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48323027/

相关文章:

JavaScript 动画的持续时间不准确

javascript - 根据子元素的编号自动执行伪元素的内容值

javascript - 带过滤器的 HTML 选择字段

javascript - 图像宽度高度通过 AngularJS (ng-file-upload)

从 Node.js 中的 HTML 字符串中选择 JavaScript DOM

php - 如何在没有 Zend FW 的情况下使用 Zend Dom Query?

javascript - JavaScript 插件的浏览器测试,在每个浏览器的独立版本中

Javascript 函数总是从 else 子句调用 .asp 方法

javascript - 使用 onClick 更改背景图像

javascript - 在js中更改img的来源并获得0的宽度?