admin管理员组文章数量:1416306
I want to run the AJAX request on the following code "Onload", not "onclick"
I dont want to add the onload property in the body tag. I want it in a different tag, in a div for example.
I change the row:
<input type='button' onclick='ajaxFunction(65)' value='Query MySQL'/>
and I did it
<div onload='ajaxFunction(65)'></div>
but it doesnt work.
<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>
I want to run the AJAX request on the following code "Onload", not "onclick"
I dont want to add the onload property in the body tag. I want it in a different tag, in a div for example.
I change the row:
<input type='button' onclick='ajaxFunction(65)' value='Query MySQL'/>
and I did it
<div onload='ajaxFunction(65)'></div>
but it doesnt work.
<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>
Share
Improve this question
asked Feb 17, 2015 at 21:03
user4472256user4472256
2
- 1 divs do not have onload events. – epascarello Commented Feb 17, 2015 at 21:04
- You may want to look into using a library such as jQuery, see api.jquery./ready to get started – Alexis Wilke Commented Feb 17, 2015 at 21:23
3 Answers
Reset to default 3No, you can't put onload
on a div
. The easiest way to make it work would be to put the function call directly after the element.
Example:
...
<div></div>
<script type="text/javascript">
ajaxFunction(65);
</script>
...
or - even better - just in front of </body>
:
...
<script type="text/javascript">
ajaxFunction(65);
</script>
</body>
...so it doesn't block the following content from loading.
The onload event can only be used on the document(body) itself, frames, images, and scripts. In other words, it can be attached to only body and/or each external resource. The div is not an external resource and it's loaded as part of the body, so the onload event doesn't apply there.
wrap it in load event
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);
}
});
Simply place your function call after the div, like so:
<script type="text/javascript">ajaxFunction(65)</script>
本文标签: htmljavascript Ajax execute onload a divStack Overflow
版权声明:本文标题:html - javascript Ajax execute onload a div - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1745254597a2650024.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论