我的页面上有一个没有从我们的服务器加载的外部 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()
请记住,只有在实际调用之前您可以用自己的定义替换它才会起作用。