非同期にロードする最初の JavaScript ファイルを作成しようとしていますが、後でオブジェクトから関数を呼び出すのに問題があります。以下は私のJavaScriptファイルexampletest.jsの例です...
(function(){
var example = {
test : function () {
alert("test function called");
}
};
window.example = example;
})();
次に、次のコードを使用してこのファイルを呼び出そうとします。
(function(doc, example) {
window.example = example;
var script = doc.createElement("script");
script.type = "text/javascript";
script.async = true;
script.src = "http://www.example.com/exampletest.js";
var scriptTag = doc.getElementsByTagName("script")[0];
scriptTag.parentNode.insertBefore(script, scriptTag);
})(document, window.example || []);
example.test();
このスクリプトを実行すると、「Uncaught TypeError: Object has no method 'test'」というエラーが表示されます。
ページがロードされた後にメソッドを呼び出すと、たとえばリンクをクリックすると、テスト メソッドが適切に呼び出され、アラート ボックスが表示されます。
私はこれをよりよく理解しようと探し回っていますが、これまでのところ運が悪いです. has no method 'test' を取得せずに関数を呼び出す方法をよりよく理解しようとしています。javascript が読み込まれた後に関数呼び出しをプッシュする方法はありますか?