当我使用 javascript 对象时,我在 Internet Explorer 7 和 8 中遇到了一个奇怪的错误。它适用于 IE9 和所有其他浏览器。
当我使用一个对象并且该对象中的任何参数都是“class”时,Internet Explorer 7 和 8 停止执行任何操作。
我使用的是 jquery 1.8.2。
我将向您展示一些代码。
var obj = {
data:{class:'image',action:'getAllFkId',type:nbType, fkid:id},
success:function(json){
alert('hi');
}
};
this.ajax(obj);
“this.ajax”的代码(“this”是一个对象):
ajax : function(params){
var defaults = {
url: '../index.php',
type:'POST',
data:{},
dataType:'json',
success:function(){/*Function handler*/}
}
var options = $.extend(defaults, params);
$.ajax(options);
return this;
}, // ..... rest of code
如果我将参数名称更改为其他任何名称,它就会起作用。
// This is just fine foo instead of class
var obj = {
data:{foo:'image',action:'getAllFkId',type:nbType, fkid:id},
success:function(json){
alert('hi');
}
};
this.ajax(obj);
我想了解为什么 IE7-8 不能使用“class”作为参数。 感谢您抽出时间。
最佳答案
对于某些较旧的浏览器,您需要将 class
用引号引起来。
data:{"class":"image",...
虽然 ECMAScript 允许保留字作为属性标识符,但一些旧版浏览器不允许。
关于对象中的 Javascript 对象错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13811804/