为什么我的javascript脚本在页面加载时运行,而不是使用onclick

why is my javascript script running when the page loads and not with onclick?

本文关键字:onclick 运行 脚本 javascript 我的 加载 为什么      更新时间:2023-09-26

下面是我单击屏幕上的按钮时要运行的脚本。基本上使用AJAX来查询我的数据库以获得更多结果。问题是,我对Javascript非常陌生,每当页面加载时,而不是当我点击应该调用它的按钮时,这个脚本就会运行。


<script type="text/javascript">
function next_ten_results()
{
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("main").innerHTML=xmlhttp.responseText;
    }
  }
var page = "<?php echo $page_count; ?>";
alert('the city of ' + page + '!');
var name = "<?php echo $sql_name; ?>";
var rest_location = "<?php echo $sql_location; ?>";
xmlhttp.open("GET","another_ten_results.php?location="+rest_location+"&rest_name="+name+"&page="+page,true);
xmlhttp.send();
}
</script>  

感谢各位读者!我确信我犯了一个简单的错误,比如我需要等待文件准备好或其他什么,但正如我所说,我是个新手。如有任何帮助和建议,我们将不胜感激。

干杯!

EDIT:在需要时调用此函数的代码。。。即使代码在没有它的情况下运行:

if($num_rows > 9){
      echo '<onclick="next_ten_results_NOT()" class="button next" id="button_next" >Page 2</a>'; }

EDIT(2):为了将来参考,问题(如上Cody所述)是我在onclick事件之前忘记了<a...。这就是导致代码以某种方式运行的原因。更改后,javascript查询按计划运行。错误实际上在HTML中。

干杯!

对于那些访问这里寻找答案的人:

调用javascript函数的HTML无效。没有以<onclick ...开头的标记。我们可以通过结束标记</a>来判断这应该是一个链接。

<a onclick替换<onclick可以解决这个问题。

将我的答案移动到一个答案,而不是原来的注释:

您正在回显'<onclick="next_ten_results_NOT()" class="button next" id="button_next" >Page 2</a>';,它正在创建一个名为的标记。您缺少<a,这意味着它是一个无效的标记。