JavaScriptファイルを非同期で読み込むには、$.getScript() を使用します。
構文
- (構文)
- $.getScript(<URL> [,<コールバック関数>])
URL | 読み込むjsファイルを指定する |
コールバック関数 | 通信が成功した時に呼ばれる関数 ※エラー時には呼ばれません。 |
サンプルソース
例)ボタンを押すと、hoge.jsを非同期で読み込む
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>$.getScriptサンプル</title> <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script> <script> $(function(){ $('#btn1').click(function(){ test(); }); $('#btn2').click(function(){ //hoge.jsを読み込む $.getScript("hoge.js", function(){ alert("hoge.jsを読み込みました。"); }); }); }); function test(){ alert(); } </script> </head> <body> <input type="button" id="btn1" value="test()を呼び出す"> <input type="button" id="btn2" value="hoge.jsを読み込む"> </body> </html> |
1 2 3 |
function test(){ alert("test()が書き換わりました"); } |
hoge.jsを読み込む前と後では、「test()を呼び出す」ボタンを押した時の表示が変わります。
解説
- ローカル環境だとクロスドメイン制約に引っかかるので、サーバにアップしてご確認ください。