【问题标题】:IE JavaScript error : document.evaluate illegal # characterIE JavaScript 错误:document.evaluate 非法 # 字符
【发布时间】:2012-11-01 08:31:55
【问题描述】:

此脚本仅支持 IE

我有这个:

var result = document.evaluate(xpath, document, null, XPathResult.STRING_TYPE, null);

使用已知的 xpath;

xpath 是:

id("productTitle")

为什么我会收到此错误消息:

Error ! This name may not contain the '#' character:

-->#<--comment

一个有效的例子,一个简单的例子:http://jsfiddle.net/gWpcU/6/

崩溃的例子:http://jsfiddle.net/YkwTM/

【问题讨论】:

  • 您能发布导致错误的 XPath 表达式吗?这会很有帮助。
  • 这是在 IE 中,还是在所有浏览器中?
  • 这是我能找到的唯一类似的参考资料...sourceforge.net/projects/html-xpath/forums/forum/380919/topic/… 有帮助吗?
  • 是的,刚刚知道从哪里开始研究,我得到结果后会发布结果
  • 我曾经也有过这个,我现在不太确定,但是如果上下文节点是文档,就会发生这种情况,如果我没记错的话,尝试使用 document.documentElement...

标签: javascript xpath bookmarklet document.evaluate


【解决方案1】:

您在示例文档中收到错误消息的原因是因为 xPath 正在尝试重新读取文档以在其上做自己的事情,并且每当它看到 "&lt;!" 时,脚本解析器都会给出错误。遍历并删除所有"&lt;!" 的情况(即&lt;!DOCTYPE html&gt; 和所有&lt;!-- cmets),使页面正常工作。我会把它贴在这里,但答案太长了:所以你可以自己做。

相反,将&lt;!DOCTYPE html&gt; 粘贴到您的工作示例中也会导致该错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-10
    • 1970-01-01
    • 1970-01-01
    • 2015-01-22
    • 2016-03-10
    • 2012-10-27
    • 1970-01-01
    相关资源
    最近更新 更多