首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么document.evaluate不能工作?

为什么document.evaluate不能工作?
EN

Stack Overflow用户
提问于 2010-07-29 02:59:31
回答 3查看 2K关注 0票数 1

我在Firefox扩展中使用了它,但无法让它工作。

代码语言:javascript
复制
var allLinks = document.evaluate(
                        '//a[@href]', 
                        window.document, 
                        null, 
                        XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, 
                        null);
window.alert(allLinks);

这会向[object XPathResult]发出警报。但是,下面的代码总是返回0。(当然,页面上也有链接)。

代码语言:javascript
复制
window.alert(allLinks.snapshotLength);
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-07-30 03:23:24

这起作用了。

代码语言:javascript
复制
        var allLinks = top.document.getElementById("content").selectedBrowser.contentDocument.evaluate(
                            treeView.model[0].xpath, 
                            top.document.getElementById("content").selectedBrowser.contentDocument, 
                            null, 
                            XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, 
                            null);
票数 0
EN

Stack Overflow用户

发布于 2010-07-29 03:02:23

如果它是特定于firefox的,并且我假设您只使用新版本..你不能使用querySelectorAll吗?

代码语言:javascript
复制
document.querySelectorAll('a[href]')

还有--你是在DOM完全加载的时候做的吗?将它绑定到DOMContentLoaded或其他什么。

代码语言:javascript
复制
document.addEventListener('DOMContentLoaded', fn, false);

xpath编辑:你的为我工作,。在控制台中已加载的现有页面上执行此操作。我很确定你是在任何东西存在之前查询的。

票数 1
EN

Stack Overflow用户

发布于 2010-07-29 03:06:49

你不想听到的答案--“对我有效”。

请参阅this example (我的警报3)。

你在哪种浏览器和什么版本上测试它?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3356387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档