5

重複の可能性:
JavaScript の動的インポート

外部にインポートされた JavaScript .js ファイルからの変数にアクセスする方法はありますか?

外部 .js ファイルで、次のような変数を定義します。

// JavaScript Document
var PETNAME = "Beauty";

そのコードを動的にインポートした後、PETNAME 変数にアクセスしたいのですが、定義された値を取得できません。

alert("Pet Name: " + PETNAME);

何が間違っている可能性がありますか? 外部の .js コードからマスター JavaScript に値を取り込む方法はありますか?

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

4

2 に答える 2

11

JS を動的にインポートするには、スクリプトがブラウザーによって解析されて利用可能になったときに実行されるイベントを考慮する必要がありますonreadystatechangeloadこの機能を使用できます:

function getScript(url, callback) {
   var script = document.createElement('script');
   script.type = 'text/javascript';
   script.src = url;

   script.onreadystatechange = callback;
   script.onload = callback;

   document.getElementsByTagName('head')[0].appendChild(script);
}

そして、次のように使用できます。

getScript('path to your js file', function(){
  alert("Pet Name: " + PETNAME);
});
于 2012-06-02T18:18:47.607 に答える
3

外部ファイルで定義された変数にアクセスする前に、外部ファイルが含まれていることを確認してください。また、外部ファイルの変数が関数内で定義されていないことを確認してください。その場合、範囲はその関数のみに制限されます。これで変数の前のキーワードを削除しても問題が解決しない場合はvar、グローバル変数が作成されます。

于 2012-06-02T18:18:23.810 に答える