有一段HTML:
<input onclick="start();" type="button" value="Start!"/>
在 Firefox 和 Chrome 中,它start
在点击时调用。但是在 IE9 中它会产生错误消息:SCRIPT5002: Function expected
. 然后我尝试了几种不同的情况:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<script>
function start(){
alert("Let's start");
}
function stop(){
alert("Let's stop");
}
</script>
<input onclick="start();" type="button" value="Start!"/><br/> <!-- Failed : the main issue -->
<span onclick="start();">Start!</span><br/> <!-- Work -->
<input onclick="stop();" type="button" value="Stop!"/><br/> <!-- Work -->
<input onclick="start();" type="text" value="Start!"/><br/> <!-- Failed -->
<input onmouseover="start();" type="button" value="Start!"/><br/> <!-- Failed -->
</body>
</html>
- 原始案例:失败(这就是我在这里的原因。)
- 使用 a
span
代替input
:成功 - 使用另一个函数名称:Success
- 使用不同的类型:失败
- 使用
onmouseover
代替onclick
:失败
我使用了调试器,它说start
是function start(){alert("Let's start");}
. 然后我用alert(start)
了,它说fileopen
。
作为测试 3 的结果,我可以通过更改名称轻松解决问题,但我想知道为什么在某些情况下会发生此错误而在其他情况下不会发生。编辑:或者下一个最好的事情,其他解决方法而不更改名称。