我的jQuery插件的IE脚本错误

时间:2009-09-02 05:14:57

标签: javascript jquery jquery-plugins twitter

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

错误:

消息:对象不支持此属性或方法 行:52 查尔:29 代码:0 URI:http://www.ntierdesign.com/jquery/livetwitter/Scripts/jquery.liveTwitter.js

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

示例:

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

4 个答案:

答案 0 :(得分:2)

您遇到此错误,因为您使用的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;
  };
}

检查页面的IE this example,添加兼容性功能,运行没有问题......

答案 1 :(得分:0)

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

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

幸运的是,网上有很多变通办法,例如。 link text

答案 2 :(得分:0)

注意,如果要使用本机jQuery方法,可以在实用程序类中使用inArray函数。 jQuery inArray Documentation

答案 3 :(得分:0)

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

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