0

重複の可能性:
実行中の JavaScript ファイルの URL を取得する (主に IE6-7 の問題)

こんにちは、私のページには次の行があります。

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

vairables の名前と年齢にアクセスするには、pixel.js が必要です。これはどのように可能ですか? アドレスバー変数(POSTデータを取得)メソッドを使用してみましたが、これは技術的にアドレスバーにないので、未定義になります...

ありがとうクレイグ

4

4 に答える 4

0

pixel.js が静的ファイルである限り、これを行うことはできないと思います。このようなことをしたい場合は、サーバー ハンドラを使用して JavaScript ファイルを提供し、クエリ文字列パラメータを読み取る必要があります。

于 2012-06-06T12:31:32.950 に答える
0

HTML ページから JavaScript に変数を渡す必要がありますか、それとも何をしていますか?

その必要がある場合は、このチュートリアルを確認してください: http://feather.elektrum.org/book/src.html

私は実際に同様の議論を見つけて、user378221 の回答をスワイプしました: Passing parameters to JavaScript files

個別のスクリプト タグで変数を宣言してから、ファイルを含めることをお勧めします。

于 2012-06-06T12:32:29.103 に答える
0

免責事項:テストされていません

スクリプト要素に ID を付けて、含まれているスクリプトから取得するだけです (それらは同じ DOM に存在するため、機能するはずです)。

HTML:

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

foo.js:

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

</p>

于 2012-06-06T12:54:53.460 に答える
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);
于 2012-06-06T12:39:37.920 に答える