关于覆盖本机DOM方法时的IE 10问题



JS

var _getElementById = document.getElementById;
//override document.getElementById
document.getElementById = function (id) {
    var _elem = _getElementById(id);
    eval("_elem." + name + " = fn");
    return _elem;
};

它在IE9中工作正常,但现在IE10不支持此javascript。
我在此评论中遇到错误

var _elem = _getElementById(id);

页面加载时。
您对此有什么解决方案吗?

您收到此错误的原因,文档的 getElementById 方法似乎绑定到文档对象,但我不是 100% 确定为什么这只发生在 IE10 上,但您可以通过在文档对象中存储对原始函数的引用来轻松克服。看:

document._getElementById = document.getElementById;
//override document.getElementById
document.getElementById = function (id) {
    var _elem = document._getElementById(id);
    eval("_elem." + name + " = fn");
    return _elem;
};

顺便说一句,这仍然会引发错误,因为没有定义名称变量。我想这是微不足道的。

最新更新