外部の .js ファイルに変数を投稿する方法を探しています。
何かのようなもの:
<script type="text/javascript" src="/js/script-starter.js?var=value"></script>
そして、var (したがって、value) を呼び出したいと思います。これは何らかの方法で可能ですか?
ありがとうございました!
外部の .js ファイルに変数を投稿する方法を探しています。
何かのようなもの:
<script type="text/javascript" src="/js/script-starter.js?var=value"></script>
そして、var (したがって、value) を呼び出したいと思います。これは何らかの方法で可能ですか?
ありがとうございました!
はい、可能です。document.getElementsByTagName関数を使用して DOM 内のすべてのscript
タグを検索し (検索する前に DOM が読み込まれていることを確認してください) 、結果のリストをループし、対応するスクリプトを見つけて、抽出するためにプロパティを解析する必要があります。あなたが探している値。src
次のようなもの:
var scripts = document.getElementsByTagName('script');
for (var i = 0; i < scripts.length; i++) {
var src = scripts[i].src;
// Now that you know the src you could test whether this is the script
// that you are looking for (i.e. does it contain the script-starter.js string)
// and if it does parse it.
}
属性の解析とsrc
クエリ文字列値の抽出に関する限り、次の関数を使用できます。
そのスクリプトが、クエリ文字列で変数を受け取り、出力としてjavascriptコードを返すサーバーサイドスクリプトである場合は、可能性があります。
スクリプトファイルをロードする前に変数を宣言するのはどうですか。
<script type="text/javascript">var myVar = "Value"</script>
<script type="text/javascript" src="/js/script-starter.js"></script>
したがって、この変数をスクリプトで使用できます。おそらくこれが最も簡単な方法の1つです。
function getJSPassedVars(script_name, varName) {
var scripts = $('script'),
res = null;
$.each(scripts, function() {
var src = this.src;
if(src.indexOf(script_name) >= 0) {
varName = varName.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var string = new RegExp("[\\?&]"+ varName +"=([^&#]*)"),
args = string.exec(src);
if(!args.length) {
res = null;
} else {
res = args[1];
}
}
});
return res;
}
console.log(getJSPassedVars('script-starter.js', 'var'));
私の場合、アプリのフォルダー構造は次のようになります。
MyApp/
index.html
jquery.js
my.js
上記の関数はwith内my.js
にconsole.log
あり、。内に含めますindex.html
。
変数を隠しaまたはpに入れてみませんか
<a id="myHiddenVar" style="display:none;">variables</a>
次に、.jsでアクセスします
var obj = document.getElementById("myHiddenVar").innerHTML;
またはjQueryスタイル
var obj = $("#myHiddenVar").text();