javascript - 有没有办法检查 SVG 是否已创建?

标签 javascript jquery svg

我面临一个问题,我必须检查所有 svgs 元素(一页上大约 15 个)是否是由图表插件创建的。我不想侵入该代码,因为当插件更新时它可能无法工作。我想在 jQuery 中执行此操作(或在必要时使用纯 JavaScript)

所以我基本上想做点什么

$("svg").bind("load", function() {
    alert('svg has loaded');
});

但上面似乎不起作用。如果我理解正确的话,SVG 不是实际 dom 的一部分,那么这就是问题所在。有没有办法检查 SVG 是否已创建?

dom 看起来像这样:

<div id="visualizer-100">
<div id="visualizer-101">
<div id="visualizer-102">

当我查看 firebug 或类似内容时,我会看到如下内容:

<div id="visualizer-100">
    <div>
        <div> 
            <svg with all its its attributes...>
        </div>
    </div>
</div>

我想检查 SVG 是否“存在”的原因是我想这样做:

var container = document.getElementById('visualizer-100');
var svgText = container.querySelector('svg').outerHTML;

如果未创建 SVG,则 svgText 为 null。

最佳答案

尝试监听那些SVG的父元素 然后监听目标负载:

parentElement.bind('DOMNodeInserted',function(event){ 
     alert(event.target + 'inserted');
});

fJSiddle:http://jsfiddle.net/0532h5ey/

对于加载的元素,您应该以内部 SVG 节点为目标。

关于javascript - 有没有办法检查 SVG 是否已创建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33164327/

相关文章:

javascript - 我可以使用Electron应用程序/JavaScript控制/编写InDesign脚本吗?

jquery - HTML5/css/JQuery 中的可点击 map

javascript - 使用 jQuery 将 &lt;script&gt; 插入 iframe

html - 显示在关键帧中使用且不适用于 svg 元素

javascript - 从列表中随机选择一个项目

javascript - SPA 中的 ADAL JS 强制注销

JavaScript 递增一个变量

javascript - 一个页面中有两个同名的js文件

html - Css双箭头

python - 在 python 中渲染矢量字母