2

当我使用 javascript 对象时,我在 Internet Explorer 7 和 8 中有一个奇怪的错误。它适用于 IE9 和所有其他。

当我使用一个对象并且对象中的任何参数都是“类”时,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 不能使用“类”作为参数。谢谢你的时间。

4

1 回答 1

2

对于一些较旧的浏览器,您需要class用引号引起来。

data:{"class":"image",...

虽然 ECMAScript 允许保留字作为属性标识符,但一些较旧的浏览器不允许它。

于 2012-12-11T00:43:59.617 回答