Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何检查函数是否从外部js文件调用_Javascript_Function - Fatal编程技术网

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

Javascript 如何检查函数是否从外部js文件调用,javascript,function,Javascript,Function,在我的页面上有一个外部JS文件不是从我们的服务器加载的。简言之,我没有任何对该文件的控制,我不能编辑该文件。我创建了一个函数,我希望在调用该外部文件中的函数后调用该函数 我知道外文文件的函数名。我希望在执行来自外部文件的函数后调用我的函数。我怎么做 如果你不明白我的问题,请告诉我。我会再解释一遍 提前感谢您必须用自己的函数替换外部函数。这可能是也可能是不可能的,这取决于事情的执行顺序 将函数(ForeignFunc())加载到页面后 var _originalForeignFunc = Fore

在我的页面上有一个外部JS文件不是从我们的服务器加载的。简言之,我没有任何对该文件的控制,我不能编辑该文件。我创建了一个函数,我希望在调用该外部文件中的函数后调用该函数

我知道外文文件的函数名。我希望在执行来自外部文件的函数后调用我的函数。我怎么做

如果你不明白我的问题,请告诉我。我会再解释一遍


提前感谢

您必须用自己的函数替换外部函数。这可能是也可能是不可能的,这取决于事情的执行顺序

将函数(ForeignFunc())加载到页面后

var _originalForeignFunc = ForeignFunc;
ForeignFunc = function() {
    _originalForeignFunc();
    //now do whatever you want to do here
    alert("After Foreign Func Execution");
}

请记住,只有在实际调用之前用自己的定义替换
ForeignFunc()
,这才有效

您必须用自己的函数替换外部函数。这可能是也可能是不可能的,这取决于事情的执行顺序

将函数(ForeignFunc())加载到页面后

var _originalForeignFunc = ForeignFunc;
ForeignFunc = function() {
    _originalForeignFunc();
    //now do whatever you want to do here
    alert("After Foreign Func Execution");
}

请记住,只有在实际调用之前用自己的定义替换
ForeignFunc()
,这才有效

如果外部函数在全局范围内,您可以用自己的包装器替换它:

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
,以确保提供给原始函数的任何上下文和参数仍然提供给它。否则,该函数中的
这个
变量可能不是它应该的样子。

如果外部函数在全局范围内,您可以用自己的包装器替换它:

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
,以确保提供给原始函数的任何上下文和参数仍然提供给它。如果没有它,函数中的
这个
变量可能不是它应该的样子。

简而言之,你不能。如果外部函数设置了一些全局可访问的变量或属性,您可以在脚本中执行一个间隔来检查它,然后调用您的函数。但这是骇客。情况远非理想。jQuery在哪里发挥作用?@Alnitak好吧,我删除了jQuery标签。虽然我使用jquery来完成我的工作。但我同意这不是一个与jquery相关的问题。谢谢。@Kuldeepdatary我担心的是,如果这个函数实际上是一个jQuery插件,那么覆盖它的方法可能会有所不同。哦,我明白了。。不,它不是jquery插件。:)简言之,你不能。如果外部函数设置了一些全局可访问的变量或属性,您可以在脚本中执行一个间隔来检查它,然后调用您的函数。但这是骇客。情况远非理想。jQuery在哪里发挥作用?@Alnitak好吧,我删除了jQuery标签。虽然我使用jquery来完成我的工作。但我同意这不是一个与jquery相关的问题。谢谢。@Kuldeepdatary我担心的是,如果这个函数实际上是一个jQuery插件,那么覆盖它的方法可能会有所不同。哦,我明白了。。不,它不是jquery插件。:)很好地使用了.apply和arguments变量。很好地使用了.apply和arguments变量。