2013-04-02 29 views
0

在mytest.html我包括此:如何獲取JavaScript本身的查詢字符串值?

<html><head> 
<script type="text/javascript" src="/myjavascript.js?foo=bar"></script> 
</head> 
<body>Hi</body> 
</html> 

在myjavascript.js

alert(this.location.search); 

這說明查詢字符串mytest.html但我想的JavaScript本身的查詢字符串爲「foo =欄「或者只是」酒吧「。

關於如何做到這一點的任何想法將是偉大的。 (我想也許我需要閱讀html元素並解析文本,但我希望這是一種更簡單的方法)。

回答

1

腳本運行時,它是頁面上加載的最後一件東西。特別是,這也使它成爲當前最後一個腳本元素。

因此,考慮到這一點,試試這個:

var scripts = document.getElementsByTagName('script'), 
    lastscriptsrc = scripts[scripts.length-1].getAttribute("src"), 
    search = lastscriptsrc.substr(lastscriptsrc.indexOf("?")); 

編輯:您也可以一個行吧,雖然它的可讀性:

var search = [].pop.apply(document.getElementsByTagName('script')).getAttribute("src").replace(/.*\?/,""); 
+0

將'延遲= 「推遲」'可能影響呢? 「 –

+0

」腳本運行時,它是頁面上加載的最後一件事。「 - *通常*。情況並非總是如此;腳本元素可以用DOM添加到任何地方。 – Quentin

+0

@SaintGerbil - 它可以。 – Quentin

0

我接受Kolink答案。正如評論所指出的那樣,我並不是100%確信它會成爲最後一個腳本(似乎有效)。所以下面更清楚地說明哪個腳本src。

這裏曾使用Kolink答案,幫我我JQuery的答案:

var scriptsrc = $("script[src*='myjavascript']").attr("src"); 
var search = scriptsrc.substr(scriptsrc.indexOf("?")); 
alert("search:" + search); 

非常感謝你的幫助這一點。

0

試試這個

var qrStr = window.location.search; 
var spQrStr = qrStr.substring(1); 
var arr = new Array(); 
arr = spQrStr.split('&'); 
for (var i=0;i<arr.length;i++) 
{ 
    var queryvalue = arr[i].split('='); 
    alert("Name: "+queryvalue[0]+" Value: "+queryvalue[1]); 
} 
相關問題