[解決済み] リモートのsrcを持つscriptタグを注入し、実行されるのを待つ
2023-07-30 22:58:24
質問
どのようにすれば
<script src="https://remote.com/"></script>
要素を注入し、それが実行されるのを待ち、そしてそれが定義する関数を使用するにはどうしたらよいでしょうか?
参考:私の場合、スクリプトはまれにクレジットカードの処理を行うので、常に含めるわけではありません。 ユーザーが change-credit-card-options ダイアログを開き、新しいクレジットカード オプションを送信したときに、すばやくスクリプトを組み込みたいのです。
追加の詳細のために編集します。リモート スクリプトにアクセスすることはできません。
どのように解決するのですか?
あなたは Google Analytics または フェイスブック の方法です。
(function(d, script) {
script = d.createElement('script');
script.type = 'text/javascript';
script.async = true;
script.onload = function(){
// remote script has loaded
};
script.src = 'http://www.google-analytics.com/ga.js';
d.getElementsByTagName('head')[0].appendChild(script);
}(document));
UPDATEです。
下記は新しいFacebookメソッドです。
<head>
:
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)){ return; }
js = d.createElement(s); js.id = id;
js.onload = function(){
// remote script has loaded
};
js.src = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
-
置き換え
facebook-jssdk
を一意のスクリプト識別子で置き換えることで、複数回追加されることを防ぎます。 - スクリプトの URL を自分のものに置き換えます。
関連
-
[解決済み】「resize」イベントの「end」を待ち、その後にアクションを実行するには?
-
[解決済み】document.write()で書くとき、なぜ<script>タグを分割するのですか?)
-
[解決済み] 上級者向けJavaScript。この関数はなぜ括弧でくくられるのですか?重複
-
[解決済み] なぜJavaScriptでは!{}[true]がtrueに評価されるのですか?
-
[解決済み] アサインの左側にJavascriptのオブジェクトブラケット表記({ ナビゲーション } =)があります。
-
[解決済み] 文字列がhtmlであるかどうかをチェックする
-
[解決済み] JavaScriptでの大文字小文字を区別しない正規表現
-
[解決済み] サブドメインにまたがってlocalStorageを使用する
-
[解決済み] Chromeの拡張機能開発にWebStormを使用するにはどうすればよいですか?
-
[解決済み] script-tagにsrcとcontentがあるのはどういう意味ですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] <Enter>でjQuery UIダイアログを送信する
-
[解決済み] 文字列がhtmlであるかどうかをチェックする
-
[解決済み] Javascript 空の配列の削減
-
[解決済み] JavaScriptでの大文字小文字を区別しない正規表現
-
[解決済み] サブドメインにまたがってlocalStorageを使用する
-
[解決済み] javascriptで文字列から関数を作成する方法はありますか?
-
[解決済み] jQueryで入力ファイルが空かどうかをチェックする方法
-
[解決済み] CORS: 認証モードは 'include' です。
-
[解決済み] jQueryを使用して、すべてのクリックイベントハンドラを削除するにはどうすればよいですか?
-
[解決済み] HTML要素にスクロールバーがあるかどうかをチェックする