从脚本标记中提取src属性并根据特定匹配进行解析

Yah*_*hel 9 javascript jquery parsing

因此,我必须使用JavaScript确定专有CRM中的页面类型.确定页面类型(即前端唯一一致的差异)的唯一方法是检查src属性以/ modules /开头的脚本标记(在许多列表中).

在标题中的十几个脚本标记的列表中,每个页面都有以下格式的行

 <script src="/modules/example/includes/sample.js" type="text/javascript"></script> 
Run Code Online (Sandbox Code Playgroud)

现在,脚本标记的顺序永远不会相同,但是,总有一个脚本具有/ modules/blah.我需要提取blah到我的脚本可以检测它是什么样的页面.

那么,我如何使用JavaScript或jQuery提取脚本标记的src值,其中src以/ modules开头,然后将值('示例',在上面的示例中)存储为javascript变量?

Sho*_*og9 18

好吧,您可以从收集所有脚本元素开始.使用jQuery,就像这样简单

var scripts = $("script");
Run Code Online (Sandbox Code Playgroud)

然后将该集限制为具有src属性的元素:

var scripts = $("script[src]");
Run Code Online (Sandbox Code Playgroud)

...并进一步将其限制为具有src "/ modules /" 开头属性:

var scripts = $("script[src^='/modules/']");
Run Code Online (Sandbox Code Playgroud)

...给出你的描述应该产生一组恰好一个元素,你现在可以从中拉出src属性值:

var path = $("script[src^='/modules/']").attr('src');
Run Code Online (Sandbox Code Playgroud)

好的,这很容易 - 现在提取路径的下一部分.有很多方法可以做到这一点,但拆分是快速和愚蠢的:使用'/'作为分隔符创建一个零件数组,然后选择第三个元素(将是"模块"之后的那个):

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

显然,这一切都非常特定于您使用的脚本路径的确切格式作为示例,但它应该让您很好地了解如何开始......