长期聆听者,第一次来电者 :) 需要帮助 - 我的 Java Script 知识有限,我已经在这个问题上停留了一段时间。
我有一个实现 AJAX 方法的经典 ASP 脚本。对我来说挑战是我需要能够告诉 Java 脚本哪个 DIV ID 将 Ajax 调用返回的 html 加载到其中。
目标 DIV 可能因应用程序正在执行的操作而异。我的想法是将 DIV 名称作为参数传递给 Java Script。
这是我到目前为止所拥有的:
<div id="AjaxResponseDiv">Content displayed before the Ajax call is made</div>
<a href="javascript:CallAjaxPage('/dev/ajax/somePage.asp?par=1','AjaxResponseDiv');">Get Message From Server</a>
Java 脚本如下:
function XHConn()
{
var xmlhttp, bComplete = false;
try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }
catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
catch (e) { try { xmlhttp = new XMLHttpRequest(); }
catch (e) { xmlhttp = false; }}}
if (!xmlhttp) return null;
this.connect = function(sURL, sMethod, sVars, fnDone)
{
if (!xmlhttp) return false;
bComplete = false;
sMethod = sMethod.toUpperCase();
try {
if (sMethod == "GET")
{
xmlhttp.open(sMethod, sURL+"?"+sVars, true);
sVars = "";
}
else
{
xmlhttp.open(sMethod, sURL, true);
xmlhttp.setRequestHeader("Method", "POST "+sURL+" HTTP/1.1");
xmlhttp.setRequestHeader("Content-Type",
"application/x-www-form-urlencoded");
}
xmlhttp.onreadystatechange = function(){
if (xmlhttp.readyState == 4 && !bComplete)
{
bComplete = true;
fnDone(xmlhttp);
}};
xmlhttp.send(sVars);
}
catch(z) { return false; }
return true;
};
return this;
}
var doAJAXCall = function (PageURL, ReqType, PostStr, FunctionName, AjaxResponseDiv) {
// create the new object for doing the XMLHTTP Request
var myConn = new XHConn();
// check if the browser supports it
if (myConn) {
// XMLHTTPRequest is supported by the browser, continue with the request
myConn.connect('' + PageURL + '', '' + ReqType + '', '' + PostStr + '', FunctionName);
}
else {
// Not support by this browser, alert the user
alert("XMLHTTP not available. Try a newer/better browser, this application will not work!");
}
}
// launched from button click
var CallAjaxPage = function (URL, AjaxResponseDiv) {
// build up the post string when passing variables to the server side page
var PostStr = "";
// use the generic function to make the request
//alert(showMessageResponse)
showMessageResponse = showMessageResponse
doAJAXCall(URL, 'POST', '', showMessageResponse, AjaxResponseDiv);
}
// The function for handling the response from the server
var showMessageResponse = function (oXML) {
// get the response text, into a variable
var response = oXML.responseText;
// update the Div to show the result from the server
document.getElementById("AjaxResponseDiv").innerHTML = response;
};
</script>
</code>
So essentially the question is - how can I change "AjaxResponseDiv" in line:
document.getElementById("AjaxResponseDiv").innerHTML = response;
To a variable AjaxResponseDiv which I am catching here:
// launched from button click <br/>
var CallAjaxPage = function (URL, AjaxResponseDiv)