我的页面上没有从我们的服务器加载的外来JS文件。总之,我对该文件没有任何控制权,我无法编辑该文件。我创建了一个函数,我希望在调用该外来文件中的函数之后调用它。
我知道外文文件的功能名称。我希望在执行外部文件的函数后调用我的函数。我该怎么办?
如果你不明白我的问题,请告诉我。我会再试一次。
提前致谢
答案 0 :(得分:5)
如果外部函数在全局范围内,您可以用自己的包装器替换它:
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
变量可能不是它应该的那样。
答案 1 :(得分:2)
您必须用自己的函数替换外部函数。这可能是也可能是不可能的,这取决于事情的执行顺序。
将函数(ForeignFunc())加载到页面上
var _originalForeignFunc = ForeignFunc;
ForeignFunc = function() {
_originalForeignFunc();
//now do whatever you want to do here
alert("After Foreign Func Execution");
}
请记住,这只有在您实际调用之前可以用自己的定义替换ForeignFunc()
时才有效。