对象没有';t仅在IE6中不支持此属性或方法javascript错误
我搜索过互联网和这个很棒的stackoverflow.com网站,但我无法控制自己。我不是一个很有经验的程序员,我的一个朋友让我修复只在IE6上出现的错误。它适用于FF、IE7/8、Opera。 以下是给出IE6错误消息的代码部分:对象没有';t仅在IE6中不支持此属性或方法javascript错误,javascript,object,internet-explorer-6,Javascript,Object,Internet Explorer 6,我搜索过互联网和这个很棒的stackoverflow.com网站,但我无法控制自己。我不是一个很有经验的程序员,我的一个朋友让我修复只在IE6上出现的错误。它适用于FF、IE7/8、Opera。 以下是给出IE6错误消息的代码部分: (function(d, n, r) { var ie, jscript, settings = {}; function add(element, type, listener) { element.addEventListener(type, liste
(function(d, n, r) {
var ie, jscript, settings = {};
function add(element, type, listener) { element.addEventListener(type, listener, false); };
function remove(element, type, listener) { element.removeEventListener(type, listener, false); };
var l = {change:[], ready:[], load:[]};
a11y = function(f) {
a11y.change(f);
};
})
(self.document, self.navigator);
错误在第7行:a11y.变化(f)所有其他浏览器都可以,只有IE6。我不是这个脚本的作者,只是想解决这个问题。有人能帮忙吗?函数声明一定有问题,或者…?这个例子看起来很混乱,有很多代码看起来让人分心 从我看到的代码中存在问题:
a11y = function(f) {
a11y.change(f);
};
在这里,您定义了一个名为a11y的新函数,在该函数的定义中,您对正在定义的函数a11y调用了一个方法“change”。我很惊讶它能在任何浏览器中运行。对我来说,它在IE7和IE8中也会抛出一个错误 它将错误行号报告为第4行(IE6中的第3行,但IE6总是关闭1)。 表示错误在以下位置:
function add(element, type, listener) { element.addEventListener(type, listener, false); };
这并不奇怪,因为IE没有实现addEventListener。IE的等效调用是:
element.attachEvent("on" + type, listener)
看起来页面正在使用jQuery,因此您可能应该为此使用jQuery方法。而不是打电话
add(element, type, listener)
你可以打电话
$(element).bind(type, listener)
您还需要修复第5行中的“删除”功能。谢谢您的帮助。正如Sean Hogan所建议的,问题在于IE没有实现addEventListener。我在互联网上的某个地方找到了类似的修复方法,它对我起了作用
function add(element, type, listener) {
remove(element, type, listener);
element.attachEvent("on"+ type, listener);
};
function remove(element, type, listener) {
element.detachEvent("on"+ type, listener);
};
settings.jscript = jscript = @_jscript_version;
settings.ie = ie = parseFloat(n.userAgent.split("MSIE ")[1]);
if (d && d.execCommand) {
try { d.execCommand("BackgroundImageCache",false, true); }
catch (e) { }
}
再次感谢 您收到的错误消息是什么?这里有很多代码似乎与错误无关,示例中缺少一些代码。你能提供一些关于这段代码要做什么的上下文吗?任何带有变量名的代码,比如'a11y'都会让你感到紧张:-)谢谢你的评论。我决定提供测试页面的URL。这里是:这里有一个javascript:那里有更多的脚本,但我想这就是导致问题的脚本。我得到的错误是IE6中的“对象不支持此属性或方法”。谢谢你的努力。我不知道所有的脚本都是什么意思。我花了两天时间想弄清楚。基本上它打开了一个窗口。。。