私のページに、サーバーからロードされていない外部 JS ファイルがあります。要するに、私はそのファイルを制御できず、ファイルを編集できません。その外部ファイルにある関数が呼び出された後に呼び出す関数を 1 つ作成しました。
外部ファイルの関数名は知っています。外部ファイルからの関数が実行されたら、関数を呼び出したいと思います。どうすればいいですか?
ここで私の問題を理解していない場合はお知らせください。もう一度説明してみます。
前もって感謝します
私のページに、サーバーからロードされていない外部 JS ファイルがあります。要するに、私はそのファイルを制御できず、ファイルを編集できません。その外部ファイルにある関数が呼び出された後に呼び出す関数を 1 つ作成しました。
外部ファイルの関数名は知っています。外部ファイルからの関数が実行されたら、関数を呼び出したいと思います。どうすればいいですか?
ここで私の問題を理解していない場合はお知らせください。もう一度説明してみます。
前もって感謝します
外部関数がグローバル スコープにある場合は、独自のラッパーに置き換えることができます。
var _old = foreignFunction;
foreignFunction = function() {
// put pre-call stuff here
...
// call with the original context and args
_old.apply(this, arguments);
// and post-call stuff here
...
}
.apply
を使用して、元の関数に提供されたコンテキストと引数が引き続き提供されるようにすることに注意してください。それがなければ、this
その関数内の変数は本来あるべきものではないかもしれません。
外部関数を独自のものに置き換える必要があります。これは、物事が実行される順序に応じて、可能な場合と不可能な場合があります。
関数 (ForeignFunc()) がページにロードされた後
var _originalForeignFunc = ForeignFunc;
ForeignFunc = function() {
_originalForeignFunc();
//now do whatever you want to do here
alert("After Foreign Func Execution");
}
ForeignFunc()
これは、実際に呼び出される前に独自の定義に置き換えることができる場合にのみ機能することを覚えておいてください。