2016-06-24 6 views
0

jsファイルにlang変数を渡そうとしています。 、plugins.js値を渡してJavaScriptで印刷

<script src="assets/js/plugins.js?lang=en"></script> 

私はこれを持っている:

実は私はこれを持っている

var LIBS = { 
    // Chart libraries 
    validation: [ 
     "assets/libs/validation/jquery.validation.min.js", 
     "assets/libs/validation/lang/xxxxxx.min.js" 
    ], 
    ... 
}; 

にはどうすればいいのlang enで私のxxxxxxを置き換えるために渡されたlang値を得ることができますか?

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

+1

可能な複製http://stackoverflow.com/questions/1017424/pass-vars-to-javascript-via-the-src-attribute – H77

+0

はい私はPHPを実行しています。 – PacPac

+0

このサーバー側を実行するか、HTMLページに含まれる他のスクリプトからアクセスできるように変数をグローバルに使用可能にします。これは通常のやり方です。サーバー側のスクリプトは本当に必要ではありません。 – ManoDestra

答えて

-1

グローバル変数を使用できます。

グローバル変数:私は、設定を保存するために、ここでオブジェクトを使用しました

あなたはあなたの他のスクリプト(plugins.js)

var settings = { lang:'en' }; 

を望むなら、あなたは、より多くの設定を追加することができます。ここで

var LIBS = { 
    // Chart libraries 
    validation: [ 
     'assets/libs/validation/jquery.validation.min.js', 
     'assets/libs/validation/lang/' + settings.lang + '.min.js' 
    ], 
    ... 
}; 

はアボ正確に私が話しているんどのような完全なスクリプトの例です上のt。私は、同じスクリプト内で宣言LIBSを持っているが、それは同じように簡単plugins.jsに含まれており、代わりにこのスクリプトでは、変数のグローバル設定の設定の下に宣言することができ...

スクリプト例:

<script> 
    var settings = { lang:'en' }; 
    console.log(settings); // Show that the value has been set. 

    var LIBS = { 
     // Chart libraries 
     validation: [ 
      'assets/libs/validation/jquery.validation.min.js', 
      'assets/libs/validation/lang/' + settings.lang + '.min.js' 
     ] 
    }; 

    // Show that LIBS has been set with the language setting from the global variable. 
    console.log(LIBS); 
</script> 

あなたがこれを実行した後、あなたは変数がピックアップされていて、配列内の2番目のエントリはassets/libs/validation/lang/en.min.js

したり、独自の例に近くなるようにする...

であることがわかります
<script> 
    var settings = { lang:'en' }; 
    console.log(settings); // Show that the value has been set. 
</script> 
<!-- Following line must come after the script above 
    this JS file can now access that global settings variable --> 
<script src="plugins.js"></script> 
+0

'LIBS'の外で' setting.lang'への呼び出しを移動する以外は動作しません – PacPac

+0

グローバル変数はプラグイン.jsの上に宣言する必要があります。もちろん、ピックアップする必要があります。 – ManoDestra

+0

はい、確かです。それはすでにそうです。 – PacPac

-1

var s = document.getElementsByTagName('script'), 
    ss = s[s.length-1]; 
    lang = ss.src.match(/\?lang=(\w\w)/); 
// sure... check it exists! 
console.debug(lang[1]); 

は内部

+0

なぜこのdownvote?これはこのページの質問に対する唯一の本当の有効な答えです。ただ、これらのダウンボードには恥がある、あなたは正しい。あなたは私に挑戦することはできませんし、あなたが行うことができる唯一のことは、あなたが手がかりを持っていないという理由で、あなたはそれよりはるかに良いかもしれません。 – fedeghe

0

あなたは今ではlangような方法であなたのプラグインを定義することができ、あなたのplugin.js

var LIBS = { 
 
    // Chart libraries 
 
    validation: [ 
 
     "assets/libs/validation/jquery.validation.min.js", 
 
     "assets/libs/validation/lang/xxxxxx.min.js" 
 
    ] 
 
}; 
 
LIBS.tmpValidation = LIBS.validation; 
 
LIBS.validation = []; 
 
LIBS.lang = "en"; 
 
Object.defineProperty(LIBS, "validation", { 
 
    get : function(){ 
 
    var self = this; 
 
    return this.tmpValidation.map(function(item){ 
 
     return item.replace(/xxxxxx/g, self.lang) 
 
    }) 
 
    } 
 
}); 
 
console.log(LIBS.validation);

でこれをしようとしplugins.jsしてみてくださいプロパティi sをLIBSに設定してから呼び出してください。LIBS.validation

関連する問題