2010-07-08 55 views
5

因此,我必须使用JavaScript来确定专有CRM中的页面类型。确定页面类型(也就是前端唯一一致的区别)的唯一方法是通过检查其src属性以/ modules /开头的脚本标记(超出了许多列表)。从脚本标记中提取src属性并根据特定匹配解析

在标题十几脚本标签的列表,每个页面有一行如下格式的现在

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

,脚本标记的顺序是绝不相同,但是,有总是有一个脚本有/模块/等等。我需要提取blah到我的脚本可以检测它是什么样的页面。

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

回答

14

那么,你可以先收集所有的脚本元素。使用jQuery,这就是这么简单

var scripts = $("script"); 

然后限制设置为具有src属性的元素:

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

...并进一步将其限制在那些具有srcattribute beginning with“/模块/“:

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

...这给你的描述应该导致一组的一个要素,从中您现在可以拉src属性值本身:

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

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

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

显然,这都是非常具体的您正在使用作为示例脚本路径的精确格式,但它应该给你如何开始一个好主意......

+0

谢谢!我刚刚到了第三个例子,需要持续克服最后一个驼峰。 – Yahel 2010-07-08 17:05:06

+0

@yc:我已经扩展了一下... – Shog9 2010-07-08 17:08:34