JS 内で JS を動的にロードする [重複] 質問する

JS 内で JS を動的にロードする [重複] 質問する

動的 Web ページがあり、そこでは外部 JS ファイル (条件付きIF) を別の JavaScript ファイル内にインポートする必要があります。

実行可能な解決策を探してみましたが、うまくいきませんでした。

を使用して JS ファイルを DOM にロードしようとしましたdocument.createElement()が、これも機能しませんでした。どうやら、JS は DOM にロードされましたが、現在の JS ファイルではアクセスできませんでした。

jQueryでのソリューションでも問題ありません

ベストアンサー1

私の推測では、DOM のみのソリューションでは次のようなことを行ったと思います。

var script = document.createElement('script');
script.src = something;
//do stuff with the script

まず、スクリプトはドキュメント ツリーに追加されないため、読み込まれないため、これは機能しません。さらに、読み込まれたとしても、他のスクリプトが読み込まれている間も JavaScript の実行は継続されるため、そのスクリプトが完全に読み込まれるまでそのコンテンツは利用できません。

スクリプトのloadイベントをリッスンし、その結果を必要に応じて操作できます。つまり、次のようになります。

var script = document.createElement('script');
script.onload = function () {
    //do stuff with the script
};
script.src = something;

document.head.appendChild(script); //or something of the likes

おすすめ記事