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;

我不确定该实例如何在这里变成一个数组,而且 IE 也可能不会,特别是如果 sn ActiveX 对象中的成员之一。

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