getSVGDocument is returning NULL in Chrome
本问题已经有最佳答案,请猛点这里访问。
我开始使用SVG,并且具有以下代码:
HTML
1 | <object id="object" data="svg.svg" type="image/svg+xml" width="400" height="300"></object> |
Javascript
1 2 3 4 5 6 7 8 9 10 | $(window).load(function (){ //alert("Document loaded, including graphics and embedded documents (like SVG)"); var svgDoc_embed = document.getElementById("embed").getSVGDocument(); alert("My svgDoc_embed =>" + svgDoc_embed); var svgDoc_object = document.getElementById("object").getSVGDocument(); alert("My svgDoc_object =>" + svgDoc_object); }); |
在FireFox浏览器中效果很好
1 2 | My svgDoc_embed => [object SVGDocument] My svgDoc_object => [object SVGDocument] |
但在Chrome浏览器上不起作用。
1 2 | My svgDoc_embed => null My svgDoc_object => null |
我已经搜索了Internet,但是找不到任何可行的方法
欢迎任何建议
================================================ =========================
我尝试打开Chrome JS控制台并输入:
结果为空。
也将代码更改为:
1 2 3 4 5 6 7 8 9 | $ ("embed"). load (function () { svgDoc_embed var = document.getElementById ("embed"). getSVGDocument (); alert ("My # embed svgDoc_embed =>" + svgDoc_embed); }); $ ("object"). load (function () { svgDoc_object var = document.getElementById ("object"). getSVGDocument (); alert ("My # object svgDoc_object =>" + svgDoc_object); }); |
并且不给出任何结果。
欢迎任何建议。
我相信getSVGDocument()已被弃用,并且在我的FF副本中不起作用。尝试改用firstElementChild:
1 | var svg = document.getElementById("object").firstElementChild; |
或直接通过以下方式访问SVG元素:
1 | var svg = document.getElementById("foo"); |
其中" foo "是svg根元素的id属性的值。
1 | <svg id="foo"> |