一尘不染

如何检查HTML页面中是否加载了嵌入式SVG文档?

javascript

我需要编辑(使用javascript)嵌入html页面的SVG文档。

加载SVG后,我可以访问SVG的dom及其元素。但是我不知道SVG dom是否准备好,因此当加载html页面时,我无法对SVG执行默认操作。

要访问SVG dom,我使用以下代码:

var svg = document.getElementById("chart").getSVGDocument();

其中“图表”是embed元素的ID。

如果在html文档准备好后尝试访问SVG,则采用这种方式:

jQuery(document).ready( function() {
var svg = document.getElementById("chart").getSVGDocument();
...

svg始终为null。我只需要知道它何时不为null,就可以开始操作它了。你知道是否有办法吗?


阅读 339

收藏
2020-05-01

共1个答案

一尘不染

您可以尝试每隔一段时间进行一次轮询。

function checkReady() {
    var svg = document.getElementById("chart").getSVGDocument();
    if (svg == null) {
        setTimeout("checkReady()", 300);
    } else {
        ...
    }
}
2020-05-01