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;
};
}
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;
};
}
相关文章推荐
- [前端填坑]报错:SCRIPT438: 对象不支持“indexOf”属性或方法
- 在IE中"对象不支持indexOf属性或方法"
- ie 8 输入密码后登录电子口岸报错:对象无法支持此属性或方法
- IE对象不支持此属性或方法: this.indexOf 的解决方法
- IE显示对象不支持此属性或方法 的解决方法
- 屏蔽:粘贴到KindEditor里,IE下弹出框报”对象不支持moveToElementText属性或方法“错误的提示
- IE中JavaScript提示“对象不支持此属性和方法”的普遍问题
- IE下全局对象报 脚本错误提示“对象不支持此属性或方法”解决方案
- js 中使用indexOf()方法是提示(对象不支持此属性或方法)如何解决?
- IE显示对象不支持此属性或方法 的解决方法
- extjs在IE报对象不支持此属性或方法
- 对象不支持indexOf属性或方法的解决方法(必看)
- 解决对象不支持“getElementsByClassName”属性或方法 ie兼容性
- dhtmlxtree SCRIPT438: 对象不支持“load”属性或方法
- IE下会报错 消息: 对象不支持此属性或方法
- 泛微OA,对象不支持此属性或方法
- 对象不支持此属性或方法
- bootstrap-datetimepicker在ie8下报对象不支持"indexOf"属性或方法
- Microsoft JScript 运行时错误: 对象不支持此属性或方法
- Thin的DateChooser代码学习(关于js的函数参数为一个完整的函数以及“对象不支持此属性或方法”错误的解决)(原创,转载请声明)