2016-07-21 90 views
0

html文档正文onLoad函数是否可以包含XMLHttpRequest? 运行onLoad函数并发送XMLHttpRequest。 从那里它似乎被忽略; onreadystatechange函数是 未调用。 后续XMLHttpRequests正确处理。所以我想知道 关于它在onLoad函数中的使用 使用Firefox 47.0运行。body onLoad XMLHttpRequest

var ifm = "If-Modified-Since"; 
var ifmDate = "Sat, 01 Jan 2000 00:00:00 GMT"; 

function initPage() { 
    document.getElementById("refreshratetxt").value = interval; 
    refreshPage(); 
    timerval = setInterval("refreshPage()", interval * 1000); 
} 

function refreshPage() { 
    sensordataGet(); 
} 

function createXHR() { 
    if (window.XMLHttpRequest) { // Mozilla, Safari, ... 
    return new XMLHttpRequest(); 
    } 
<code removed here> 
} 

function sensordataGet() { 
    var sensordata = createXHR(); 
    sensordata.open("GET", "sensordataget.py", true); // _sensordataget 
    sensordata.setRequestHeader(ifm, ifmDate); 
    sensordata.onreadystatechange = function() { 
    if (sensordata.readyState == 4) { 
     if (sensordata.status == 200) { 
     var response = JSON.parse(sensordata.responseText); 
     <code removed here> 
     } 
    } 
    } 
    sensordata.send(); 
} 

<body onLoad="initPage()"> 

回答

0

你可以参考这个...

<html> 
<head> 
<script> 
var request; 
function sendInfo() 
{ 
var v=document.vinform.t1.value; 
var url="index.jsp?val="+v; 

if(window.XMLHttpRequest){ 
request=new XMLHttpRequest(); 
} 
else if(window.ActiveXObject){ 
request=new ActiveXObject("Microsoft.XMLHTTP"); 
} 

try 
{ 
request.onreadystatechange=getInfo; 
request.open("GET",url,true); 
request.send(); 
} 
catch(e) 
{ 
alert("Unable to connect to server"); 
} 
} 

function getInfo(){ 
if(request.readyState==4){ 
var val=request.responseText; 
document.getElementById('amit').innerHTML=val; 
} 
} 

</script> 
</head> 
<body> 
    <marquee><h1>This is an example of ajax</h1></marquee> 
<form name="vinform"> 
<input type="text" name="t1"> 
<input type="button" value="ShowTable" onClick="sendInfo()"> 
</form> 

<span id="amit"> </span> 

</body> 
</html> 

的index.jsp

<% 
int n=Integer.parseInt(request.getParameter("val")); 

for(int i=1;i<=10;i++) 
out.print(i*n+"<br>"); 

%> 
+0

这是一个例子,但它根本不使用body onLoad。 – Jon

0

简短的回答是肯定的,你可以在onload功能一个XMLHttpRequest。长时间的答案是我看到的问题是由sensordataget python函数中的计时问题引起的。