[英]Passing DIV ID name to JavaScript as part of AJAX call in Classic ASP
长时间的监听者,第一次的调用者:)需要帮助-我的Java Script知识有限,并且我在这个问题上停留了一段时间。
我有一个实现AJAX方法的经典ASP脚本。 我面临的挑战是,我需要能够告诉Java Script哪个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:
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:
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:
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:
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:
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)
回调函数应该是CallAjaxPage
函数中的闭包。
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)
function showMessageResponse (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;
}
doAJAXCall(URL, 'POST', '', showMessageResponse);
}
doAJAXCall
不需要AjaxResponseDiv
参数。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.