对象没有';t仅在IE6中不支持此属性或方法javascript错误

对象没有';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

我搜索过互联网和这个很棒的stackoverflow.com网站,但我无法控制自己。我不是一个很有经验的程序员,我的一个朋友让我修复只在IE6上出现的错误。它适用于FF、IE7/8、Opera。 以下是给出IE6错误消息的代码部分:

(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中的“对象不支持此属性或方法”。谢谢你的努力。我不知道所有的脚本都是什么意思。我花了两天时间想弄清楚。基本上它打开了一个窗口。。。