Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在IE/FireFox中工作但在chrome中不工作的html代码_Javascript_Html - Fatal编程技术网

Javascript 在IE/FireFox中工作但在chrome中不工作的html代码

Javascript 在IE/FireFox中工作但在chrome中不工作的html代码,javascript,html,Javascript,Html,这是一段非常简单的代码,我想尝试运行它,因为我想学习一些JavaScript基础知识。该代码可以在Internet Explorer和Firefox中使用,但不能在chrome上使用。我觉得我一定错过了一些非常愚蠢的事情 var帧=2; 函数animate(){ 如果(帧==1){ 帧=帧+1; document.getElementById(“animate”).src=“walking1.png”; } else if(帧==2){ 帧=帧+1; document.getElementBy

这是一段非常简单的代码,我想尝试运行它,因为我想学习一些JavaScript基础知识。该代码可以在Internet Explorer和Firefox中使用,但不能在chrome上使用。我觉得我一定错过了一些非常愚蠢的事情

var帧=2;
函数animate(){
如果(帧==1){
帧=帧+1;
document.getElementById(“animate”).src=“walking1.png”;
}
else if(帧==2){
帧=帧+1;
document.getElementById(“animate”).src=“walking2.png”;
}
否则{
帧=1;
document.getElementById(“animate”).src=“walking3.png”;
}
}
单击按钮将更改图像


单击我来设置动画
设置动画
同时用作函数名和id,这导致它无法在Chrome中工作

此外,前面提到,根据Chrome的实现方式,单独使用名为
animate
的函数也可能无法在Chrome中工作。(见下文注释)


var帧=2;
函数animatee(){
如果(帧==1){
帧=帧+1;
document.getElementById(“animate”).src=”http://placehold.it/100";
}
else if(帧==2){
帧=帧+1;
document.getElementById(“animate”).src=”http://placehold.it/100/f00";
}
否则{
帧=1;
document.getElementById(“animate”).src=”http://placehold.it/100/00f";
}
}
单击按钮将更改图像

单击我来设置动画
奇怪的是,现行规范没有说明如何处理这种情况(命名元素是否应该覆盖以前设置的全局变量?)。对我来说,这听起来像是一个chrome bug:但对他们来说,似乎没有说明应该如何处理。(但返回undefined显然也不是一个好的做法:))但所有这些都可以通过使用eventListeners或避免未限定范围的变量来避免,因此dupe仍然是一个正确的目标。@kaido@guest271314,是的,在这里,您将变量
animate
范围限定到用作
window.onload
处理程序的匿名函数中。因此,它不会与应该由
窗口[name\u of\u namedElement]
返回的命名元素混淆。问题只存在于全局(窗口)范围的变量。chrome中的奇怪之处在于,在HTML事件处理程序中,它将变量设置为未定义,而您仍然可以通过提供精确的参数来访问它。所以我很有信心,这是chrome中的一个bug,因为它忽略了这两个方面。但正如前面所说的,并且得到@Knu的确认,这也是规格中的一个怪癖,似乎从2012年就开始了?!