前提・実現したいこと
HTMLファイルの<head>内に非同期で外部jsを読み込んでいます。← top.jsとします。
また、同じHTMLファイルの</body>のすぐ上でも、外部jsを非同期で読み込んでいます。 ← bottom.js
※直書きして読み込めばいいのですが、わけあって、このような仕様にしています。
<!DOCTYPE html> <html lang="ja"> <head> <script> const topJS = document.createElement('script'); topJS.src = 'top.js'; const script = document.getElementsByTagName('script')[0]; script.parentNode.insertBefore(topJS, script); </script> </head> <body> ---- 略 --- <script> const bottomJS = document.createElement('script'); bottomJS.src = 'bottom.js'; document.body.appendChild(bottomJS); </script> </body> </html>
やりたいこととしては、
top.jsでjqueryプラグインを読み込んで
bottom.jsでjqueryの処理を走らせたいと思っています。
試したこと
top.jsで https://code.jquery.com/jquery-3.3.1.min.js を非同期で読み込もうとしたところ、
bottom.jsで$が無いとエラーが出て、bottom.jsの処理が動きませんでした。
次にtop.jsで
document.write('https://code.jquery.com/jquery-3.3.1.min.js'); を使ったのですが、
非同期のjsで読み込んだjsの内部にdocument.write(); を使ってはいけないと怒られてしまいました。
bottom.jsにはwindow.onloadのタイミングで処理を走らせていないからいけないのだとは思うのですが
可能な限り速く、処理を走らせたいと思っています。
jqueryプラグインが読み込み終わったら、処理を走らせるという書き方はどうすればいいでしょうか?
(top.jsは空にして、bottom.jsに集約して書くのでも構いません)
お詳しい方、教えていただけますと幸いです。
どうぞ宜しくお願いたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/07 15:00