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

How to check if the function is called from foreign js file

本文关键字:从外部 是否 js 文件 调用 函数 何检查 检查      更新时间:2023-09-26

在我的页面上有一个外部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()替换为自己的定义时才有效。