私の質問はこれに似ています。しかし、私はそこにある答えが不完全であり、質問は不確実ではないもので終わったと感じています...
ユーザーが自分のサイトに配置する Javascript アプリケーションを開発しています。私のアプリケーションを使用するために、Web ページの上部に 1 つの JavaScript インクルードを配置するだけで済みます。
私の JavaScript を実行するには jQuery が必要です。
ということで、目標は…
- jQuery が既にロードされているかどうかを確認します。
- jQuery がロードされていない場合はロードします。
- jQuery の実行が必要な JavaScript を実行します。
上記の 3 つをすべて同じスクリプト内で実行したいと考えています。
これが私が最初に試したものです...
function loa_j(){
if (typeof jQuery === "undefined") {
var newscript = document.createElement('script');
newscript.type = 'text/javascript';
newscript.async = true;
newscript.src = 'http://code.jquery.com/jquery-latest.min.js';
(document.getElementsByTagName('head')[0]||document.getElementsByTagName('body')[0]).appendChild(newscript);
}
}
loa_j();
$(document).ready(function(){
//...Code That Never Fired
}
JavaScript が jQuery のロードを待たないため、これは機能しません。jQueryをロードしますが、十分に高速ではありません。
これが私の他の解決策です。これはうまくいきましたが、これが本当にこれを行うための最良の方法であるかどうか疑問に思っています...
function loa_j(){
if (typeof jQuery === "undefined") {
(function(a,b){function G(a){var b=F[a]={.... //Entire jQuery copy and pasted in :D
}
}
そのため、jQuery 全体をコピーしてその関数に貼り付けることで、コードは実際に機能します。
これは本当にこれを行うための最良の方法ですか?