我想在以下代码上运行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>
答案 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>