getSVGDocument在Chrome中返回NULL

时间:2013-05-18 17:16:08

标签: javascript jquery svg

我开始使用SVG,我有以下代码:

HTML

<embed id="embed" src="svg.svg" type="image/svg+xml" width="400" height="300" >

<object id="object" data="svg.svg" type="image/svg+xml" width="400" height="300"></object>

的Javascript

$(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浏览器中运行良好

My svgDoc_embed => [object SVGDocument]
My svgDoc_object => [object SVGDocument]

但在Chrome浏览器上无效。

My svgDoc_embed => null
My svgDoc_object => null

我在互联网上搜索但找不到任何有用的东西

欢迎任何建议

=============================================== ===========================

我尝试打开Chrome JS控制台并输入:

document.getElementById ("object"). GetSVGDocument ();

结果为空。

还要将代码更改为:

$ ("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);
  });

并没有给出任何结果。

欢迎提出任何建议。

1 个答案:

答案 0 :(得分:1)

我认为getSVGDocument()已弃用,但在我的FF副本中无效。请尝试改为使用firstElementChild:

var svg = document.getElementById("object").firstElementChild;

或直接访问SVG元素:

var svg = document.getElementById("foo");

其中“foo”是根svg元素的id属性的值。

<svg id="foo">