2011-05-11 71 views
0

我想在userscript中使用document.evaluate表達式,以便能夠檢測文檔頭中現有jQuery庫的存在(或不存在),作爲開發jQuery包裝器的一部分userscripts將在firefox和chrome中工作,並且不會與其他庫發生衝突(我希望做的是讓它在任何其他腳本標記之前插入庫和任何jquery代碼,並讓它們在no衝突模式)用xpath計算jquery腳本標記

長話短說,這種說法似乎並沒有工作。

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

當我嘗試,如果jqueryscri測試pt.snapshotLength> 0,腳本失敗。我在xpath非常新,所以請幫我理解這一點。

回答

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

可能會更好。