您的位置:首页 > 其它

IE8 SCRIPT438: 对象不支持“indexOf”属性或方法

2017-09-07 16:57 405 查看
1   a.js

   var reportEdit = (function() {

         $(function() {

               extendIndexOf();

               save();

         });

        function save(){

        
$("#reportForm").submitFormGetJson({

            url : "/ideprt/save",

            wait : true,

            callback : function(data) {

                if (data.indexOf("fail") > -1) {  
//IE8不支持indexOf, js中Array的indexOf方法在js1.6版本中才给予了实现,ie7,8中只实现到了js1.3版本,chrome为js1.7版本,ff为js1.8版本。

                    msgUtil.alert("失败!");

                }else if(data.indexOf("repeat2032") > -1){

                     msgUtil.alert("成功!");

                }

            }

        });

    }

 

    //IE8不支持indexOf,扩展indexOf

    function extendIndexOf(){

        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;

          };

        }

    }

    return{
          save: save

     }

 })()

2  解决

在使用indexOf方法前,执行一下下面的js, 原理就是如果发现数组没有indexOf方法,会添加上这个方法。

        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;

          };

        }

 

         
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐