2010-07-08 49 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