8.7w+
社区成员
//ajax
function getHTTPObject() {
if (typeof XMLHttpRequest == "undefined")
XMLHttpRequest = function () {
try {
return new ActiveXObject("Msxml2.XMLHTTP.6.0");
}
catch (e) {}
try {
return new ActiveXObject("Msxml2.XMLHTTP.3.0");
}
catch (e) {}
try {
return new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {}
return false;
}
return new XMLHttpRequest();
}
function displayAjaxLoading(element) {
while (element.hasChildNodes()) {
element.removeChild(element.lastChild);
}
var content = document.createElement("img");
content.setAttribute("src","image/ajax-loader.gif");
content.setAttribute("alt", "loading...");
element.appendChild(content);
}
function submitFormWithAjax(whichform, thetarget) {
var request = getHTTPObject();//调用函数,检测浏览器,并创建XMLHttpRequest;
if (!request) return false;
displayAjaxLoading(thetarget);//删除目标元素子元素,添加load图片
var dataParts = [];
var element;
for (var i = 0; i < whichform.elements.length; i++) {
element = whichform.elements[i];
dataParts[i] = element.name + '=' + encodeURIComponent(element.value);
//把表单的值组织成URL编码的字符串,以便通过Ajax请求发送
//收集它们的名字和编码后的值。
}
var data = dataParts.join('&');
request.open('POST', whichform.getAttribute('action'), true);
request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
//这个头部对于POST请求是必须的,它表示请求中包含URL编码的表单
request.onreadystatechange = function () {
if (request.readyState == 4) {
if (request.status == 200 || request.status == 0) {
var matches = request.responseText.match(/<article> ([\s\S]+)<\/article>/);
if (matches.length > 0) {
thetarget.innerHTML = matches[1];
} else {
thetarget.innerHTML = '<p>Oops,there was an error.sorry</p>'
}
} else {
thetarget.innerHTML = '<p>' + request.statusText + '</p>';
}
}
};
request.send(data);
return true;
}