规范中的lookupNamespaceURI-Algo导致递归错误。

问题描述 投票:0回答:1

我实施了 lookupNamespace 但当我查找一个不存在的命名空间时,它一直出错,因为调用栈已满。这个算法的伪代码可以在这里找到。规格.

它之所以会递归地调用自己,是因为它在搜索命名空间时遍历了dom树,当它碰到文档节点时,调用会被中继到documentElement--然后从那里再次遍历到文档(关闭圈)。

那么,是我遗漏了什么明显的东西,还是伪代码出错了?

javascript dom
1个回答
1
投票

没有理由它会回到 document 可能你又错过了 documentElement 是一个 Element?

  • 如果它有一个非空的 命名空间 和a 前缀 匹配 prefix 因此,它将返回该命名空间。
  • 如果它有一个 xmlns:prefix 匹配的属性 prefix 然后它将返回该属性的值。
  • 如果 prefixnull 而该元素有一个 xmlns 属性,则返回该属性的值。
  • 如果前面的内容都不为真,它将返回 null,因为它没有祖先元素。
© www.soinside.com 2019 - 2024. All rights reserved.