javascript / Ajax执行onload一个div

时间:2015-02-17 21:03:06

标签: javascript html ajax

我想在以下代码上运行AJAX请求" Onload",而不是" onclick"

我不想在body标签中添加onload属性。我希望它在一个不同的标签中,例如div。

我改变了行:

<input type='button' onclick='ajaxFunction(65)' value='Query MySQL'/> 

我做到了

<div onload='ajaxFunction(65)'></div>

但它不起作用。

    <html>
<head>
<script language="javascript" type="text/javascript">
<!-- 
//Browser Support Code
function ajaxFunction(argId){
 var ajaxRequest;  // The variable that makes Ajax possible!

 try{
   // Opera 8.0+, Firefox, Safari
   ajaxRequest = new XMLHttpRequest();
 }catch (e){
   // Internet Explorer Browsers
   try{
      ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
   }catch (e) {
      try{
         ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
      }catch (e){
         // Something went wrong
         alert("Your browser broke!");
         return false;
      }
   }
 }
 // Create a function that will receive data 
 // sent from the server and will update
 // div section in the same page.
 ajaxRequest.onreadystatechange = function(){
   if(ajaxRequest.readyState == 4){
      var ajaxDisplay = document.getElementById('ajaxDiv');
      ajaxDisplay.innerHTML = ajaxRequest.responseText;
   }
 }
 // Now get the value from user and pass it to
 // server script.

 var queryString = "?q=" + argId ;
 ajaxRequest.open("GET", "getInputs.php" + 
                              queryString, true);
 ajaxRequest.send(null); 
}
//-->
</script>
</head>
<body>

<input type='button' onclick='ajaxFunction(65)' value='Query MySQL'/>

<div id='ajaxDiv'>Your result will display here</div>


</body>
</html>

3 个答案:

答案 0 :(得分:3)

不,您无法将onload放在div上。使其工作的最简单方法是将函数调用直接放在元素之后。

示例:

...
<div></div>
<script type="text/javascript">
   ajaxFunction(65);
</script>
...

或 - 甚至更好 - 就在</body>

前面
...
<script type="text/javascript">
   ajaxFunction(65);
</script>
</body>

...所以它不会阻止以下内容加载。

onload事件只能用于文档(正文)本身,框架,图像和脚本。换句话说,它可以仅附加到身体和/或每个外部资源。 div不是外部资源,它作为正文的一部分加载,因此onload事件不适用于那里。

答案 1 :(得分:0)

将其包装在加载事件

 window.addEventListener('load', function(event) {

function ajaxFunction(argId){
 var ajaxRequest;  // The variable that makes Ajax possible!

 try{
   // Opera 8.0+, Firefox, Safari
   ajaxRequest = new XMLHttpRequest();
 }catch (e){
   // Internet Explorer Browsers
   try{
      ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
   }catch (e) {
      try{
         ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
      }catch (e){
         // Something went wrong
         alert("Your browser broke!");
         return false;
      }
   }
 }
 // Create a function that will receive data 
 // sent from the server and will update
 // div section in the same page.
 ajaxRequest.onreadystatechange = function(){
   if(ajaxRequest.readyState == 4){
      var ajaxDisplay = document.getElementById('ajaxDiv');
      ajaxDisplay.innerHTML = ajaxRequest.responseText;
   }
 }
 // Now get the value from user and pass it to
 // server script.

 var queryString = "?q=" + argId ;
 ajaxRequest.open("GET", "getInputs.php" + 
                              queryString, true);
 ajaxRequest.send(null); 
}
});

答案 2 :(得分:0)

只需在div之后放置函数调用,如下所示:

<script type="text/javascript">ajaxFunction(65)</script>