Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/91.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何访问;嵌入;HTML中的标记_Javascript_Html_Svg - Fatal编程技术网

Javascript 如何访问;嵌入;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)完成关于回合 事实证明,您可以查看以下链接: (另外,去投票给其他一些答案,给他一些分数,因

我有一个SVG文件,我不想将它粘贴到HTML文件中,因为它会变得凌乱。 因此,在咨询W3C之后,“嵌入”标记似乎是将外部SVG文件包含到HTML中最安全的方法

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