2012-06-06 37 views
0

可能重複:
Getting URL of executing JavaScript file (IE6-7 problem mostly)讀變量包括

大家好,我頁有這樣一行:

<script type="text/javascript" src="pixel.js?name=Test&age=21"></script> 

我需要pixel.js訪問可變名稱和年齡,這怎麼可能?我嘗試使用地址欄變量(POST獲取數據)的方法,但它出來,我想這在技術上並不在地址欄中不確定...

感謝 克雷格

+0

我同意這是一個DUP,但這個問題並沒有一個很好的答案(可能是因爲實在是沒有一個)。 – Pointy

+1

如果你解釋一下你想做什麼,那麼肯定有一種更好,更可靠的方式來做你正在做的事情。 – Pointy

+1

@Pointy如果另一個問題肯定是一個愚蠢的問題,但沒有很好的答案,那麼我們應該努力改進那個問題的答案(即使最終答案是「沒有解決方案」)。 –

回答

0

我認爲你不能這樣做,因爲只要pixel.js是一個靜態文件。如果你想做這樣的事情,你必須使用一些服務器處理程序來提供JavaScript文件並讀取查詢字符串參數。

0

你只能用你的文件名找到腳本標籤,然後解析src屬性......像這樣做:

var scripts = document.getElementsByTagName('script'), 
    scriptTest = /^pixel\.js/, 
    pixelScript, params, 
    getScriptParams = function(scriptSrc){ 
     var qSplit = scriptSrc.split('?'), 
      aSplit = qSplit[1].split('&'), 
      retVals = {}, pSplit; 

     for (var i = 0, il = aSplit.length; i < il; i++) { 
      pSplit = aSplit[i].split('='); 
      retVals[pSplit[0]] = pSplit.length > 1 ? pSplit[1] : null; 
     } 

     return retVals; 
    }; 

for (var i = 0, il = scripts.length; i < il; i++) { 
    if (scriptTest.test(scripts[i].src)) { 
     pixelScript = scripts[i]; 
    } 
} 

params = getScriptParams(pixelScript.src); 
0

免責聲明:未經測試

剛上放一個ID腳本元素,然後從包含的腳本抓住它(它們存在於相同的DOM,所以它應該工作)

HTML:

<script id="blah" type="text/javascript" src="foo.js?key=value" /> 

foo.js:

console.log(document.getElementById('blah').src);​