Javascript 如何访问;嵌入;HTML中的标记
我有一个SVG文件,我不想将它粘贴到HTML文件中,因为它会变得凌乱。 因此,在咨询W3C之后,“嵌入”标记似乎是将外部SVG文件包含到HTML中最安全的方法Javascript 如何访问;嵌入;HTML中的标记,javascript,html,svg,Javascript,Html,Svg,我有一个SVG文件,我不想将它粘贴到HTML文件中,因为它会变得凌乱。 因此,在咨询W3C之后,“嵌入”标记似乎是将外部SVG文件包含到HTML中最安全的方法 <embed src="path_to_svg" type="image/svg+xml" id='svgsource' /> 也不是 适用于任何浏览器。使用“object”标记也不起作用。您尝试过使用元素吗?(数据属性而不是src)完成关于回合 事实证明,您可以查看以下链接: (另外,去投票给其他一些答案,给他一些分数,因
<embed src="path_to_svg" type="image/svg+xml" id='svgsource' />
也不是
适用于任何浏览器。使用“object”标记也不起作用。您尝试过使用元素吗?(数据属性而不是src)完成关于回合
事实证明,您可以查看以下链接:
(另外,去投票给其他一些答案,给他一些分数,因为我劫持了他的答案!)我相信IE9可以使用
元素来加载SVG,在这种情况下,您可以访问contentDocument
属性,但对于IE的早期版本,您可能运气不佳。(其他浏览器应允许您将contentDocument
与
和
一起使用)使用.getSVGDocument()
。这似乎适用于
、
和
:
document.getElementById('svgsource').getSVGDocument()
对于
或
也可以使用.contentDocument
:
document.getElementById('svgsource').contentDocument
对于IE7或IE8,我相信您运气不好。简短回答:您可以尝试内联引用的SVG文件内容。对于
和
元素,请使用:
e.parentElement.replaceChild(e.contentDocument.documentElement.cloneNode(true), e);
…其中,e
是引用元素。如果您确实需要
元素,请将上述代码中的.contentDocument
更改为.getSVGDocument()
(括号是必需的)。但是,请注意,因此不建议使用and,但无论如何,它也已经是了
要获得更完整的答案,请参阅。我不喜欢W3学校。请参阅。可能的副本也请参阅,您是说要么我应该在html中包含整个SVG,要么我将失去对它的进一步访问,对吗?因为据我所知,包含SVG的选项正在使用,或者我相信是的。正如我所说的,如果需要的话,您可以通过ajax将整个svg加载到一个div中,以保持它的独立性。或者,您可以使用iframe——您可以使用通常的方式访问它。我认为如果安装了Adobe svg插件,getSVGDocument在IE7/8中仅在嵌入元素上工作。但我不推荐这种配置,最好升级到现代浏览器。
。getSVGDocument()
是。
document.getElementById('svgsource').contentDocument
e.parentElement.replaceChild(e.contentDocument.documentElement.cloneNode(true), e);