1

外部の .js ファイルに変数を投稿する方法を探しています。

何かのようなもの:

<script type="text/javascript" src="/js/script-starter.js?var=value"></script>

そして、var (したがって、value) を呼び出したいと思います。これは何らかの方法で可能ですか?

ありがとうございました!

4

5 に答える 5

8

はい、可能です。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クエリ文字列値の抽出に関する限り、次の関数を使用できます。

于 2012-05-07T20:31:30.243 に答える
2

そのスクリプトが、クエリ文字列で変数を受け取り、出力としてjavascriptコードを返すサーバーサイドスクリプトである場合は、可能性があります。

于 2012-05-07T20:32:05.717 に答える
1

スクリプトファイルをロードする前に変数を宣言するのはどうですか。

<script type="text/javascript">var myVar = "Value"</script>
<script type="text/javascript" src="/js/script-starter.js"></script>

したがって、この変数をスクリプトで使用できます。おそらくこれが最も簡単な方法の1つです。

于 2012-05-07T20:33:48.450 に答える
0
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.jsconsole.logあり、。内に含めますindex.html

于 2012-05-07T20:52:11.150 に答える
0

変数を隠しaまたはpに入れてみませんか

<a id="myHiddenVar" style="display:none;">variables</a>

次に、.jsでアクセスします

var obj = document.getElementById("myHiddenVar").innerHTML;

またはjQueryスタイル

var obj = $("#myHiddenVar").text();
于 2012-05-07T20:33:58.057 に答える