Извлечение атрибута src из тега script и анализ в соответствии с конкретными совпадениями - PullRequest
8 голосов
/ 08 июля 2010

Итак, я должен определить тип страницы в проприетарной CRM, используя JavaScript. Единственный способ определить тип страницы (то есть единственное непротиворечивое различие во внешнем интерфейсе) - это изучить тег сценария (из множества списков), атрибут src которого начинается с / modules /.

В списке из дюжины тегов-сценариев в заголовке каждая страница имеет строку следующего формата

 <script src="/modules/example/includes/sample.js" type="text/javascript"></script> 

Теперь, порядок тега script никогда не бывает одинаковым, но всегда есть один скрипт, который имеет / modules / blah. Мне нужно извлечь бла, чтобы мой скрипт мог определить, что это за страница.

Итак, как мне, используя JavaScript или jQuery, извлечь значение src тега скрипта, где src начинается с / modules, и сохранить значение после этого ('example', в примере выше) как переменную javascript?

1 Ответ

17 голосов
/ 08 июля 2010

Ну, вы можете начать с сбора всех элементов скрипта.С jQuery это так же просто, как

var scripts = $("script");

Затем ограничьте этот набор элементами, которые имеют атрибут src:

var scripts = $("script[src]");

... и далее ограничьте его теми, у когоатрибут src , начинающийся с"/ modules /":

var scripts = $("script[src^='/modules/']");

... который, учитывая ваше описание, должен привести к набору ровно одного элемента, из которого вы теперь можетепотяните само значение атрибута src:

var path = $("script[src^='/modules/']").attr('src');

Хорошо, это было легко - теперь нужно извлечь следующую часть пути.Есть много способов сделать это, но разделение быстрое и тупое: создайте массив частей, используя «/» в качестве разделителя, затем выделите третий элемент (который будет один после «модулей»):

var pathPart = $("script[src^='/modules/']").attr('src').split('/')[2];

Очевидно, что все это очень специфично для точного формата пути сценария, который вы используете в качестве примера, но он должен дать вам хорошее представление о том, как начать ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...