【问题标题】:IE script error with my jQuery plugin我的 jQuery 插件的 IE 脚本错误
【发布时间】:2010-11-24 20:31:11
【问题描述】:

我似乎无法弄清楚我在 IE 8 中遇到了以下错误(目前只有我测试过的 IE 版本)。该脚本在我测试过的所有其他浏览器(chrome、ff、safari)中运行良好。我做错了什么?

错误:

消息:对象不支持此属性或方法 线路:52 字符:29 代码:0 网址:http://www.ntierdesign.com/jquery/livetwitter/Scripts/jquery.liveTwitter.js

消息:对象不支持此属性或方法 线路:1 字符:1 代码:0 网址:http://twitter.com/status/user_timeline/bloomsdayreg.json?count=3&callback=jsonp1251868075768&_=1251868075882

示例:

希望我不会太快地限制我的 twitter api 速率限制,但您可以在此处查看页面示例 http://ntierdesign.com/jquery/livetwitter/

【问题讨论】:

    标签: javascript jquery jquery-plugins twitter


    【解决方案1】:

    您遇到此错误是因为您使用的 IE 版本没有实现 Array/indexOf,这已在 JavaScript 1.6 中引入。

    但是,如果它不存在,您可以将 indexOf 方法添加到 Array 原型中,以实现兼容性。

    这是 Firefox 内部使用的实现:

    if (!Array.prototype.indexOf) {
      Array.prototype.indexOf = function(elt /*, from*/) {
        var len = this.length >>> 0;
    
        var from = Number(arguments[1]) || 0;
        from = (from < 0)
             ? Math.ceil(from)
             : Math.floor(from);
        if (from < 0)
          from += len;
    
        for (; from < len; from++) {
          if (from in this &&
              this[from] === elt)
            return from;
        }
        return -1;
      };
    }
    

    查看你页面的IEthis example,添加了兼容功能,运行没有问题...

    【讨论】:

    • 感谢 CMS,我没有做过很多 javascript 开发,但我真的很惊讶我以前从未遇到过。
    • 不客气@ntierdesign...欢迎来到跨浏览器脚本的陌生世界... :-)
    【解决方案2】:

    错误直接指向第 52 行,char 29,即数组上的 .indexOf 方法。

    此方法在 IE 的 javascript 上实现 - 因此出现错误。

    幸运的是,网络上有大量的解决方法,例如。 link text

    【讨论】:

      【解决方案3】:

      刚刚注意到,如果您想使用原生 jQuery 方法,可以使用实用程序类中的 inArray 函数。 jQuery inArray Documentation

      【讨论】:

        【解决方案4】:

        您可能需要重新考虑名称,我已经发布了一个类似的插件。 :)

        http://github.com/elektronaut/jquery.livetwitter/tree/master

        【讨论】:

        • 电子宇航员做得很好。不用担心,这不是真正的公共消费。我只做了一个插件,所以我可以了解更多。
        猜你喜欢
        • 1970-01-01
        • 2011-09-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-04-26
        • 2016-11-05
        • 1970-01-01
        相关资源
        最近更新 更多