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 に答える