JQUERY - $ .get(url,data,function(data),'html')不能在IE上运行

时间:2011-02-10 00:01:18

标签: jquery

JQUERY 1.5

function loadPostQry(str) { 
    $.get( 'fillpage.php','prodcode='+str, function(data) { 
        $('#s_content').html(data); 
    },
    "html" ); 
}

this piece of code is running on every browser but not on IE. I think there's something missing, the XHR or something else that has got to do with the engine.

//不要对这个问题感到困惑,上面的代码就是我想要得到的答案......

JQUERY 1.4

function getXMLHttpRequest() 
{
    if (window.XMLHttpRequest) {
        return new window.XMLHttpRequest;
    }
    else {
        try {
            return new ActiveXObject("MSXML2.XMLHTTP.3.0");
        }
        catch(ex) {
            return null;
        }
    }
}

我试图像ver1.4代码那样完成......

问:我如何编写与Ver1.5兼容的代码片段,每次调用代码时都会首先检查引擎。

这是JQUERY网站的一个例外......

  

- xhr ---默认值:ActiveXObject可用时(IE),XMLHttpRequest   否则回调创建   XMLHttpRequest对象。默认为   ActiveXObject在可用时(IE),.   否则就是XMLHttpRequest。覆盖到   提供您自己的实现   XMLHttpRequest或增强功能   工厂

需要解决方法..谢谢......

1 个答案:

答案 0 :(得分:0)

我也很难理解您的问题,但我认为您正在询问如何以与1.5之前的版本相同的方式访问本机XHR对象。如果你的问题是如何检查浏览器是否支持XMLHTTPRequest,你不应该这样做;这就是使用jQuery的重点。

jQuery 1.5中的ajax方法返回一个jqXHR对象,该对象是早期版本中返回的本机浏览器XHR对象的增强版本。此对象是本机浏览器XHR对象的超集,因此原始的所有方法和属性都是继承的。如果要访问jqXHR对象,以下代码将起作用。我创建了一个jsfiddle http://jsfiddle.net/parkerault/YmdQJ/,并且可以确认它在IE7和IE8中有效。

var loadPostQry = function(str) {
    return $.ajax({
        type: 'GET',
        url: '/fillpage.php',
        cache: false,
        data: {
            prodcode: str
        }
    });
};

var complete = function(jqXHR, status) {
    document.write('returned: ' + jqXHR.responseText + '\nwith status: ' + status);
};

var jqxhr = loadPostQry('pancake');
    jqxhr.complete(complete);

您仍可以从jqxhr访问1.5之前从浏览器XHR对象访问的任何属性。