Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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 动态加载SVG赢得';不允许访问其DOM_Javascript_Ajax_Svg - Fatal编程技术网

Javascript 动态加载SVG赢得';不允许访问其DOM

Javascript 动态加载SVG赢得';不允许访问其DOM,javascript,ajax,svg,Javascript,Ajax,Svg,下面我做了一个例子,里面有几个symbol元素和animate元素,这些元素在beginElement()函数运行时可以触发动画 当我在HTML中插入svg时,这很有效,但我想把这个svg隐藏起来。我已经遵循了,我正在以友好的方式加载这个SVG,但是在加载之后,我无法访问SVG的DOM来运行beginElement()函数 问题在于加载的SVG中的contentDocument属性为空。我发现DOM中有一个ownerDocument属性,但它看起来是只读的。当我尝试运行beginElement(

下面我做了一个例子,里面有几个
symbol
元素和
animate
元素,这些元素在
beginElement()
函数运行时可以触发动画

当我在HTML中插入svg时,这很有效,但我想把这个svg隐藏起来。我已经遵循了,我正在以友好的方式加载这个SVG,但是在加载之后,我无法访问SVG的DOM来运行
beginElement()
函数

问题在于加载的SVG中的
contentDocument
属性为空。我发现DOM中有一个
ownerDocument
属性,但它看起来是只读的。当我尝试运行
beginElement()
时,什么都没有发生

你可以从这把小提琴中看出问题所在:

我在其他SO线程()中发现了此问题,但它们归结为两个主要问题:

  • 文件://
    协议,但我正在服务器上运行此程序
  • 外部域文件,但我正在从同一个域加载SVG
  • SVG未加载,但我在下载SVG后运行代码

  • 至少,Firefox似乎将
    实现为一个影子DOM容器。也许有一些有用的东西。它只是用来访问东西的文档。至少,Firefox似乎实现了作为影子DOM容器的
    。也许有一些有用的东西。它只是用来访问东西的文档