こんにちは、私のページには次の行があります。
<script type="text/javascript" src="pixel.js?name=Test&age=21"></script>
vairables の名前と年齢にアクセスするには、pixel.js が必要です。これはどのように可能ですか? アドレスバー変数(POSTデータを取得)メソッドを使用してみましたが、これは技術的にアドレスバーにないので、未定義になります...
ありがとうクレイグ
こんにちは、私のページには次の行があります。
<script type="text/javascript" src="pixel.js?name=Test&age=21"></script>
vairables の名前と年齢にアクセスするには、pixel.js が必要です。これはどのように可能ですか? アドレスバー変数(POSTデータを取得)メソッドを使用してみましたが、これは技術的にアドレスバーにないので、未定義になります...
ありがとうクレイグ
pixel.js が静的ファイルである限り、これを行うことはできないと思います。このようなことをしたい場合は、サーバー ハンドラを使用して JavaScript ファイルを提供し、クエリ文字列パラメータを読み取る必要があります。
HTML ページから JavaScript に変数を渡す必要がありますか、それとも何をしていますか?
その必要がある場合は、このチュートリアルを確認してください: http://feather.elektrum.org/book/src.html
私は実際に同様の議論を見つけて、user378221 の回答をスワイプしました: Passing parameters to JavaScript files
個別のスクリプト タグで変数を宣言してから、ファイルを含めることをお勧めします。
免責事項:テストされていません
スクリプト要素に ID を付けて、含まれているスクリプトから取得するだけです (それらは同じ DOM に存在するため、機能するはずです)。
HTML:
<script id="blah" type="text/javascript" src="foo.js?key=value" />
foo.js:
console.log(document.getElementById('blah').src);
</p>
ファイル名でスクリプトタグを見つけて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);