使用 xpath 计算 jquery 脚本标签

发布于 2024-11-06 12:12:41 字数 456 浏览 1 评论 0原文

我想在用户脚本中使用 document.evaluate 表达式,以便能够检测文档头中是否存在现有 jQuery 库,作为为可在 Firefox 和 chrome 中工作的用户脚本开发 jQuery 包装器的一部分,并且不会与其他库冲突(我希望做的是让它在任何其他脚本标签之前插入库和任何 jquery 代码,如有必要,并让它们以无冲突模式运行。)

长话短说,这声明似乎没有工作:

jqueryscript = document.evaluate("//*script[contains(@src, 'jquery')]", document.head, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);

当我尝试测试是否 jqueryscript.snapshotLength > 时0,脚本失败。我对 xpath 非常陌生,所以请帮助我理解这一点。

I want to use a document.evaluate expression in a userscript to be able to detect the presence (or absence) of an existing jQuery library in the document head, as part of developing a jQuery wrapper for userscripts that will work in firefox and chrome, and will not conflict with other libraries (what i'm hoping to do is get it to insert the library and any jquery code, if necessary, before any other script tags and have them run in no conflict mode.)

Long story short, this statement does not appear to work:

jqueryscript = document.evaluate("//*script[contains(@src, 'jquery')]", document.head, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);

when I try to test if jqueryscript.snapshotLength > 0, the script fails. I am incredibly new at xpath so please help me understand this.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一桥轻雨一伞开 2024-11-13 12:12:41
jqueryscript = document.evaluate ("//script[contains (@src, 'jquery')]", document.head, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);

应该有效。

但请注意,在某些网站(例如 SO)上,它会产生错误的点击。
EG:

<script ... src="http://engine2.adzerk.net/z/8277/adzerk2_2_17_45?keywords=jquery,firefox,google-chrome,xpath,greasemonkey,x-user-registered,x-5000plus-rep">    

所以,

jqueryscript = document.evaluate ("//script[contains (@src, '/jquery')]", document.head, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);

可能会更好。

jqueryscript = document.evaluate ("//script[contains (@src, 'jquery')]", document.head, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);

should work.

But note that on some sites (like SO) it will yield false hits.
EG:

<script ... src="http://engine2.adzerk.net/z/8277/adzerk2_2_17_45?keywords=jquery,firefox,google-chrome,xpath,greasemonkey,x-user-registered,x-5000plus-rep">    

So,

jqueryscript = document.evaluate ("//script[contains (@src, '/jquery')]", document.head, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);

might be better.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文