如何检查是否从外部js文件调用该函数

时间:2012-08-13 14:06:18

标签: javascript function

我的页面上没有从我们的服务器加载的外来JS文件。总之,我对该文件没有任何控制权,我无法编辑该文件。我创建了一个函数,我希望在调用该外来文件中的函数之后调用它。

我知道外文文件的功能名称。我希望在执行外部文件的函数后调用我的函数。我该怎么办?

如果你不明白我的问题,请告诉我。我会再试一次。

提前致谢

2 个答案:

答案 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()时才有效。