0

私は作業中の ajax カレンダーを持っています。通常どおり、Chrome、Safari、および Firefox で正常に動作しています。ただし、IE9以下では動作しません。

次のエラーSCRIPT 600 が表示されます: この操作のターゲット要素が無効です。

WPプラグインですが、これがコードです

function show_micro_ajax(response) {
    document.getElementById('wp-calendar').innerHTML = response;
}

function microAjax(url, cF) {
    this.bF = function(caller, object) {
        return function() {
            return caller.apply(object, new Array(object));
        }
    };
    this.sC = function(object) {
        if (this.r.readyState == 4) {
            this.cF(this.r.responseText);
        }
    };
    this.gR = function() {
        if (window.ActiveXObject) return new ActiveXObject('Microsoft.XMLHTTP');
        else if (window.XMLHttpRequest) return new XMLHttpRequest();
        else return false;
    };
    if (arguments[2]) this.pb = arguments[2];
    else this.pb = "";
    this.cF = cF;
    this.url = url;
    this.r = this.gR();
    if (this.r) {
        this.r.onreadystatechange = this.bF(this.sC, this);
        if (this.pb != "") {
            this.r.open("POST", url, true);
            this.r.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
            this.r.setRequestHeader('Connection', 'close');
        } else {
            this.r.open("GET", url, true);
        }
        this.r.send(this.pb);
    }
}​
4

1 に答える 1

0

IE6 をサポートする必要がない場合は、ActiveX の行を削除します。それ以外の場合は、テストを逆にします。

   if (window.XMLHttpRequest) return new XMLHttpRequest();
   else if (window.ActiveXObject) return new ActiveXObject('Microsoft.XMLHTTP');
   else return false;

ここでインスタンスがどのように配列になるかはわかりません。特に、sn ActiveX オブジェクトのメンバーの 1 つである場合は、おそらく IE もそうではありません。

return caller.apply(object, new Array(object))
于 2012-04-14T06:05:44.200 に答える