如何在HTML中访问"embed"标记的内容

nar*_*ngi 14 html javascript svg

我有一个SVG文件,我不想将其粘贴到HTML文件中,因为它会变得混乱.因此,在咨询了w3schools之后,"embed"标签似乎是将外部SVG文件包含到HTML中最安全的方式.

<embed src="path_to_svg" type="image/svg+xml" id='svgsource' />
Run Code Online (Sandbox Code Playgroud)

但是,我需要通过主html文件中的javascript通过DOM访问svg元素.不幸的是

document.getElementById('my_svg_id')
Run Code Online (Sandbox Code Playgroud)

也不

document.getElementById('svgsource').contentDocument
Run Code Online (Sandbox Code Playgroud)

适用于任何浏览器.使用"object"标签也不起作用.

Ric*_*haw 9

关于转弯完成!

事实证明你可以,请看这个链接:http://xn--dahlstrm-t4a.net/svg/html/get-embedded-svg-document-script.html

(另外,对ErikDahlström的其他答案进行投票,给我一些积分,让我劫持他的答案!)


gil*_*ly3 9

使用.getSVGDocument().这似乎有用<embed>,<object>并且<iframe>:

document.getElementById('svgsource').getSVGDocument()
Run Code Online (Sandbox Code Playgroud)

对于<object><iframe>您也可以使用.contentDocument:

document.getElementById('svgsource').contentDocument
Run Code Online (Sandbox Code Playgroud)

对于IE7或IE8,我相信你运气不好.