Извлеките атрибут src из тега script и синтаксического анализа согласно особым соответствиям

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

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

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

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

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

9
задан Yahel 8 July 2010 в 16:51
поделиться

1 ответ

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

var scripts = $("script");

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

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

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

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

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

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

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

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

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

18
ответ дан 4 December 2019 в 11:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: