使用xpath计算jquery脚本标记

时间:2011-05-11 04:45:42

标签: jquery firefox google-chrome xpath greasemonkey

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

长话短说,这句话似乎不起作用:

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

当我尝试测试jqueryscript.snapshotLength> 0,脚本失败。我在xpath非常新,所以请帮助我理解这一点。

1 个答案:

答案 0 :(得分:1)

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);

可能会更好。