getSVGDocument在Chrome中返回NULL

getSVGDocument is returning NULL in Chrome

本文关键字:返回 NULL Chrome getSVGDocument      更新时间:2023-09-26

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

<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 ();

结果为null。

同时将代码改为:

$ ("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:

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

或使用:

直接访问SVG元素
var svg = document.getElementById("foo");

其中"foo"为根svg元素的id属性值。

<svg id="foo">