有一个外部JS文件未从我的服务器加载到我的页面上。总之,我没有任何控制该文件,我无法编辑该文件。我创建了一个函数,我希望在调用该外部文件中的函数后调用它。如何检查是否从外部js文件中调用该函数
我知道外文件的功能名称。我希望在执行来自外部文件的函数后调用我的函数。我该怎么做?
让我知道,如果你不明白我的问题在这里。我会试着再解释一遍。
在此先感谢
有一个外部JS文件未从我的服务器加载到我的页面上。总之,我没有任何控制该文件,我无法编辑该文件。我创建了一个函数,我希望在调用该外部文件中的函数后调用它。如何检查是否从外部js文件中调用该函数
我知道外文件的功能名称。我希望在执行来自外部文件的函数后调用我的函数。我该怎么做?
让我知道,如果你不明白我的问题在这里。我会试着再解释一遍。
在此先感谢
如果外国功能是在全球范围内,你可以用自己的包装更换:
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
变量可能不是它应该是的。
与.apply和参数变量很好的接触。 – scaryman 2012-08-13 14:34:05
您必须用自己的替换外部函数。这可能也可能不可能,取决于事物的执行顺序。
功能后(ForeignFunc())加载到页面
var _originalForeignFunc = ForeignFunc;
ForeignFunc = function() {
_originalForeignFunc();
//now do whatever you want to do here
alert("After Foreign Func Execution");
}
请记住,这只会工作,如果你可以用自己的定义替换ForeignFunc()
它实际上调用之前。
总之,你不能。如果外部函数设置了一些全局可访问的变量或属性,那么可以在脚本中进行一次间隔来检查它,然后调用你的函数。但这很不好。情况远非理想。 – Utkanos 2012-08-13 14:09:02
jQuery在哪里发挥作用? – Alnitak 2012-08-13 14:16:07
@Alnitak好吧我删除了jquery标签。虽然我使用jQuery来做我的东西。但我同意这不是一个jQuery相关的问题。谢谢。 – 2012-08-13 14:19:57