我在头文件中放置了一个没有任何脚本标记的标记,代码如下:
<script type="text/javaScript">
alert("asd");
function displayPic(str){
if(str=""){
document.getElementById("slider").innerHTML="<img src="" class='slider'/>";
}
if(window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4){
document.getElementById("slider").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET", "gallery.php?q="+str, true);
xmlhttp.send();
}
</script>顶部警报的目的是测试脚本是否正在执行。就目前而言,事实并非如此。没有弹出提示"asd",就好像根本没有JS代码一样,但是当我删除整个函数displayPic并留下警告(“asd”)时,它工作得很好。我在这段简单的代码中找不到任何错误,我花了整整30分钟试图找出可能导致这种情况的原因,但我的解决问题的能力没有结果。
这是一个PHP页面,btw,使用WAMP在本地主机上运行它。
发布于 2013-12-21 01:43:06
我刚刚发现了一个有趣的在线资源:http://www.javascriptlint.com/online_lint.php
粘贴你的代码,它发现了三个可能的问题:
; 1 <script type="text/javaScript">
2 alert("asd");
3
4 function displayPic(str){
5 if(str=""){
=========================^
warning: test for equality (==) mistyped as assignment (=)?
6 document.getElementById("slider").innerHTML="<img src=\"\" class='slider'/>";
7 }
8
9 if(window.XMLHttpRequest){
10 xmlhttp=new XMLHttpRequest();
11 }
12
13 xmlhttp.onreadystatechange=function(){
14 if(xmlhttp.readyState==4){
15 document.getElementById("slider").innerHTML = xmlhttp.responseText;
16 }
17 }
18 xmlhttp.open("GET", "gallery.php?q="+str, true);
================^
lint warning: missing semicolon
19 xmlhttp.send();
20 }
21 </script>也许还有更好的资源,但这显然是你将来在请求社区帮助你的javascript之前可能想要做的事情。
发布于 2013-12-21 01:43:49
document.getElementById("slider").innerHTML="";
在JS双引号(" ")中有HTML双引号(" ")。这会导致语法错误,解释为什么您的代码都无法运行。尝试:
document.getElementById("slider").innerHTML="";
if (str == "")。否则,您将把""赋值给str,覆盖您的字符串,并确保永远不会输入if。JSFiddle的工作示例
https://stackoverflow.com/questions/20709027
复制相似问题