如果放在外部文件中,则无法执行javascript函数,但在脚本标记中执行得很好

时间:2019-07-16 20:19:00

标签: javascript php html function

我有一个具有两个功能的javascript文件:

function animateBars(x){
  x.classList.toggle("change");

  x.classList.toggle("close");
}

function showResult(str) {
  if (str.length==0) {
    document.getElementById("livesearch").innerHTML="";
    document.getElementById("livesearch").style.border="0px";
    return;
  }
  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 (this.readyState==4 && this.status==200) {
      document.getElementById("livesearch").innerHTML=this.responseText;
      document.getElementById("livesearch").style.border="1px solid #A5ACB2";
    }
  }
  xmlhttp.open("GET","livesearch.php?q="+str,true);
  xmlhttp.send();
}

我正在从多个PHP文件调用这两个函数。问题在于第一个函数animateBars正常执行(意味着HTML正在查找.js文件)。但是,它没有执行第二个功能。当我将函数放在HTML的script标记中时。可以。

我也知道showResult()可能有一些错误。这就是为什么浏览器控制台输出的找不到变量:showResults()吗?

我想使用外部文件中的脚本进行测试,但是如果是上述情况,则应该内联完成JavaScript的测试?

更新

问题在于对php的某些干扰,因为如果将index.php文件转换为index.html,则会加载showResult()函数。

0 个答案:

没有答案