подсчет тегов jquery-скриптов с помощью xpath - PullRequest
0 голосов
/ 11 мая 2011

Я хочу использовать выражение document.evaluate в пользовательском сценарии, чтобы иметь возможность обнаруживать присутствие (или отсутствие) существующей библиотеки jQuery в заголовке документа, как часть разработки оболочки jQuery для пользовательских сценариев, которая будет работать в Firefox.и chrome, и не будет конфликтовать с другими библиотеками (что я надеюсь сделать, это заставить его вставить библиотеку и любой код jquery, если необходимо, перед любыми другими тегами сценария и заставить их работать в режиме без конфликта.)

Короче говоря, это утверждение не работает:

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

, когда я пытаюсь проверить, jqueryscript.snapshotLength> 0, сценарий завершается ошибкой.Я невероятно новичок в xpath, поэтому, пожалуйста, помогите мне понять это.

1 Ответ

1 голос
/ 11 мая 2011
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);

может быть лучше.

...