3

を使用してロードされたスクリプトに変数を送信することは可能$.getScriptですか?

現時点で私は持っています:

$.getScript( "js/my_script.js", function() {
// do something here after script has loaded
});

しかし、ロードされたスクリプトに変数を送信したいと思います。これは可能ですか?

例えば

// this is a variable set outside of the script loaded via `$.getScript`
var my_variable = 1

// how do I get that variable sent to `my_script.js`
$.getScript( "my_script.js", function() {
// do something here after script has loaded
});
4

3 に答える 3

7

jQuery.getScript():

スクリプトはグローバルコンテキストで実行されるため、他の変数を参照したり、jQuery 関数を使用したりできます。

ドキュメントから、変数は呼び出し内でアクセスできるように思われます$.getScript(function(){..})。したがって、これはおそらくscopeの問題です。あなたの変数my_variableは(おそらく)内部$(document).ready(function(){...})に存在するため、その特定のスコープに制限されています。

データを window オブジェクトに割り当てて 、グローバル変数を使用してみてください。

// Set it as a global variable by assigning it to the window object
window.my_variable = 'some value';

// Now use it inside of $.getScript()
$.getScript( "my_script.js", function() {
  // Access it by name
  alert(my_variable);
  // or as a property of window
  alert(window.my_variable);
  // both ways to access my_variable work and are valid.
}

ソース: 古い質問はこちらおよび $.getScript ドキュメントはこちら
個人サーバーで確認済み。

于 2012-11-16T07:40:09.737 に答える
0

ここで注意してください - JavaScript は 4 次元的に考えることがすべてです (Marty!)。$.getScript は非同期であるため、スクリプトがロードされる前に呼び出しがすぐに返される可能性があります。ロードするスクリプトが複数あり、それぞれに何かを渡す必要がある場合は、このため、異なる変数を使用する必要があります。

于 2015-10-10T14:09:11.150 に答える