嵌入式svg何时实际加载,我如何检查它是否已加载

时间:2018-01-18 13:56:19

标签: javascript html dom svg addeventlistener

我在html对象标签中嵌入了svg。我遇到的情况是我需要检查对象元素中的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无法解决问题。在事件监听器实际注册之前可能已经加载了图像

1 个答案:

答案 0 :(得分:0)

尝试使用window.load()方法等待DOM,并加载所有HTML content(所有图像,CSS等),然后执行,如下所示:< / p>

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