繁体   English   中英

在Classic ASP中将DIV ID名称传递给JavaScript作为AJAX调用的一部分

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM