getSVGDocument和contentDocument在Chrome中返回null

时间:2018-10-07 21:21:27

标签: object svg

我有两个使用相同的svg文件的HTML页面,该文件是通过标记插入的。

问题是我可以在其中一个中检索contentDocument,但不能在另一个中检索。我在两个页面中都打开了检查,对象看上去完全一样。

这是行不通的:

> document.getElementById("agvObj")
<object type=​"image/​svg+xml" data=​"agv/​agv.svg" class=​"agvObj" id=​"agvObj" height=​"100" width=​"100" style=​"visibility:​hidden;​">
    ​#document
        xml-stylesheet
        <svg xmlns=​"http:​/​/​www.w3.org/​2000/​svg" xmlns:xlink=​"http:​/​/​www.w3.org/​1999/​xlink" width=​"100" height=​"100" id=​"agvSVG">​…​</svg>​
</object>​
> document.getElementById("agvObj").getSVGDocument()
null
> document.getElementById("agvObj").contentDocument
null

这是可行的方法:

> document.getElementById("agvObj")
<object type=​"image/​svg+xml" data=​"agv/​agv.svg" class=​"agvObj" id=​"agvObj" height=​"100" width=​"100" style=​"visibility:​hidden;​">
    ​#document
        xml-stylesheet
        <svg xmlns=​"http:​/​/​www.w3.org/​2000/​svg" xmlns:xlink=​"http:​/​/​www.w3.org/​1999/​xlink" width=​"100" height=​"100" id=​"agvSVG">​…​</svg>​
</object>​
> document.getElementById("agvObj").getSVGDocument()
#document
> document.getElementById("agvObj").contentDocument
#document

该对象看起来完全相同,所以我真的不知道该检查为什么它可以在一个页面而不在另一页面上工作。

0 个答案:

没有答案