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或增强功能 工厂
需要解决方法..谢谢......
答案 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对象访问的任何属性。