[解決済み] 外部スクリプトがロードされていることを確認する
2023-05-04 16:44:39
質問
jqueryプラグインを作成しており、外部スクリプトがロードされていることを確認したいです。これは内部のWebアプリケーションのためのもので、私はスクリプト名/場所を一貫して保つことができます(mysscript.js)。これはまた、ページ上で何度も呼び出すことができるアジャキシープラグインです。
スクリプトがロードされていないことが確認できれば、それを使ってロードします。
jQuery.getScript()
同じスクリプトを何度も読み込ませたくないので、スクリプトが読み込まれたことを確認するにはどうしたらよいでしょうか。これは、スクリプトのキャッシュにより、心配する必要がないものですか?
更新しました。 私たちの組織でこのプラグインを使用する人を制御できず、特定の ID の有無にかかわらずスクリプトがすでにページにないことを強制できないかもしれませんが、スクリプト名は常に同じ場所に同じ名前で表示されることになります。スクリプトの名前を使って、実際にロードされているかどうかを確認できればと思っています。
どのように解決するのですか?
スクリプトがグローバル空間に変数や関数を作成する場合、それらの存在を確認することができます。
外部JS(グローバルスコープ内)--。
var myCustomFlag = true;
そして、これが実行されたかどうかを確認するために
if (typeof window.myCustomFlag == 'undefined') {
//the flag was not found, so the code has not run
$.getScript('<external JS>');
}
更新情報
の存在を確認することができます。
<script>
タグの存在を確認するには、すべての
<script>
要素をすべて選択し、それらの
src
属性をチェックします。
//get the number of `<script>` elements that have the correct `src` attribute
var len = $('script').filter(function () {
return ($(this).attr('src') == '<external JS>');
}).length;
//if there are no scripts that match, the load it
if (len === 0) {
$.getScript('<external JS>');
}
あるいは、次のように焼くこともできます。
.filter()
機能をセレクタに直接組み込むこともできます。
var len = $('script[src="<external JS>"]').length;
関連
-
[解決済み] HTMLマークアップのどこに<script>タグを記述すればよいですか?
-
[解決済み] セルフクローズスクリプトエレメントが機能しないのはなぜですか?
-
[解決済み] npmスクリプトへのコマンドライン引数の送信
-
[解決済み] jQuery データ属性の値に基づいて要素を検索する方法は?
-
[解決済み] ページロード後にJavaScriptを実行させるには?
-
[解決済み] スクリプトタグ - 非同期と遅延
-
[解決済み] 同じページで複数のバージョンのjQueryを使用することはできますか?
-
[解決済み】Wordpressでjqueryと$記号を使う方法
-
[解決済み】スクリプトの読み込みと実行順序について
-
[解決済み] JavaScriptデータフォーマット/プリティプリンタ
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] GoogleのホストされたjQueryを使用する最良の方法、しかしGoogleの私のホストされたライブラリにフォールバックすることは失敗します。
-
[解決済み] JSのDateからDay名
-
[解決済み] AngularJSのエラーです。Cross Origin リクエストはプロトコルスキーム http, data, chrome-extension, https に対してのみサポートされています。
-
[解決済み] JavaScriptで、ある文字列が別の文字列の中に出現するすべてのインデックスを見つけるにはどうすればよいですか?
-
[解決済み] WebStormで未解決の変数が大量にある場合の警告に対処する方法は?
-
[解決済み] ECMAScriptとは?
-
[解決済み] なぜjavascriptのES6 Promisesはresolve後も実行を継続するのですか?
-
[解決済み] JavaScript で css プロパティを使用して HTML 要素の背景色を設定する方法
-
[解決済み] javascriptのキャンバスで画像をリサイズする (スムーズ)
-
[解決済み] これは純関数ですか?