質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

1回答

6412閲覧

非同期で読み込む外部JavaScriptファイルの読み込み完了時に関数を実行したい

anzuame

総合スコア8

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2016/12/01 08:44

###前提・実現したいこと
async属性を付けた外部JavaScriptファイルの読み込みが終わってからその中の関数を実行したいです。

html

1<html> 2<head></head> 3<body> 4<script type="text/javascript" src="baseとなるJavaScriptの関数.js" async></script> 5 6・・・コンテンツ・・・ 7 8<script type="text/javascript"> 9if (typeof(test) !== 'undefined') test.helloWorld(); 10</script> 11</body> 12</html>

###発生している問題・エラーメッセージ

非同期に読み込んでいる外部JavaScriptファイルの読み込み完了をどう判断すれば良いか悩んでいます。

###該当のソースコード
非同期で読み込む外部JavaScriptファイルは下記のイメージです。

javascript

1if (typeof (window['test']) === 'undefined') { 2 var Test = function() { 3 変数宣言 4 }; 5 Test.prototype = { 6 helloWorld: function() { 7 処理 8 } 9 }; 10 Test.prototype['helloWorld'] = Test.prototype.helloWorld; 11 window['test'] = new Test(); 12}

###試したこと
setIntervalで

javascript

1if (typeof(test) !== 'undefined') test.helloWorld();

この部分を一定時間毎に実行する事で実現は可能なのですが一定時間毎に常に動いているのが良い方法では無い気がして他に方法が無いか悩んでいます。

###補足情報(言語/FW/ツール等のバージョンなど)
どのブラウザでも動くことが理想なので標準のJavaScriptだけで実現したいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

onload イベントを見てみるとか。

【JS備忘録: script要素でonload - Mach3.laBlog】
http://blog.mach3.jp/2010/03/21/js-script-onload.html


asyncではありませんが、動的に取得して追加する方法なら実行順が確保出来ます。

jQueryの例。

【jQuery.getScript()のまとめ: 小粋空間】
http://www.koikikukan.com/archives/2013/12/19-015555.php

【[jQuery] 外部JavaScriptファイル読込みに関する考察|A Day In The Boy's Life】
http://ameblo.jp/itboy/entry-10497560936.html

【jquery.getScriptはどうやってスクリプトファイルを実行しているのか - Qiita】
http://qiita.com/shinsuke-mat/items/8de5a158c9aca066a1e4

【jQuery.getScript() | jQuery API Documentation】
https://api.jquery.com/jquery.getscript/

ライブラリを使うとか。

【外部jsを読み込む事ができるJavaScriptライブラリ「RequireJS」 | Web活メモ帳】
http://blog.verygoodtown.com/2010/03/javascript-load-lib-requirejs/

【RequireJS】
http://requirejs.org/

投稿2016/12/01 18:42

kei344

総合スコア69366

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問