我开始使用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);
});
并没有给出任何结果。
欢迎提出任何建议。
答案 0 :(得分:1)
我认为getSVGDocument()已弃用,但在我的FF副本中无效。请尝试改为使用firstElementChild:
var svg = document.getElementById("object").firstElementChild;
或直接访问SVG元素:
var svg = document.getElementById("foo");
其中“foo”是根svg元素的id属性的值。
<svg id="foo">