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;
};
}
}
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;
};
}