在IE8中恢复被覆盖的javascript方法
Restoring an overwritten javascript method in IE8
我覆盖了Element
原型上的许多方法,这样我就可以添加一个自定义钩子,比如:
Element.prototype._method = Element.prototype.method;
Element.prototype.method = function(){
this._method.apply(this, arguments);
// custom callback
}
在某个时候,我想恢复原来的方法,所以我做了:
Element.prototype.method = Element.prototype._method;
然而,当在节点上调用method
元素时,它似乎在IE8中抛出了Invalid procedure call or argument
错误。我是否错误地恢复了原始方法?
IE8似乎有这个问题,不太容易解决,但您可以在Element.prototype
上尝试delete
来恢复覆盖的。
var old = Element.prototype.getElementsByTagName;
Element.prototype.getElementsByTagName = old;
// alert(document.body.getElementsByTagName('script').length); // this throws Error
delete Element.prototype.getElementsByTagName;
alert(document.body.getElementsByTagName('script').length); // Now it works as expected
相关文章:
- 从Javascript方法返回全局变量
- 简单的JavaScript方法链接
- 如何为javascript方法放入jquery确认对话框
- jquery插件或javascript方法自动调整文本输入(而非文本区域)(固定宽度)可变高度的大小
- 在类外重写Javascript方法,使用默认行为
- 使用 JavaScript 方法滚动
- 如何从窗体调用外部javascript方法
- 使用c#在Web服务器上运行JavaScript方法
- 如何从角度 js 调用 javascript 方法
- 在Node.js中,我在哪里可以看到JavaScript方法的源代码,例如hasOwnProperty
- 简单的javascript方法问题
- iframe未执行Javascript方法(PHP)
- Javascript 方法看不到对象变量
- 从HTML中的另一个文件访问javascript方法
- 如何测试只在闭包范围中可见的javascript方法
- 将php表转换为angularjs javascript方法
- 使用ScriptManager.RegisterStartupScript从代码隐藏调用javascript方法
- 如何从 MVC4 链接调用 Javascript 方法(错误 JavaScript 运行时错误:对象不支持此操作)
- Java eqivalent method of “splice(a,b,..)“在 JavaScript 方法中
- 在客户端 Javascript 方法之后运行服务器方法