此问题已在此处有答案:
JS function named animate
doesn't work in Chrome, but works in IE(3个答案)
6年前关闭。
这是一段非常简单的代码,我想尝试运行它,因为我想学习一些JavaScript的基础知识。这段代码可以在IE和Firefox上运行,但不能在Chrome上运行。我觉得我一定错过了一些非常愚蠢的东西。
var frame = 2;
function animate(){
if(frame == 1){
frame = frame + 1;
document.getElementById("animate").src = "walking1.png";
}
else if (frame == 2){
frame = frame + 1;
document.getElementById("animate").src = "walking2.png";
}
else{
frame = 1;
document.getElementById("animate").src = "walking3.png";
}
}
<p> clicking the button will change the image.</p>
<img id="animate" src="walking1.png">
<button onclick="animate()">click me to animate</button>
使用的图片保存在同一文件夹中。
1条答案
按热度按时间gopyfrb31#
animate
同时用作函数名和id,这导致它在Chrome中无法工作。另外,提到in this post,一个单独的名为
animate
的函数也可能无法在Chrome中工作,这取决于它的实现方式。guest271314的观察表明,如果onclick处理程序没有内联,则不存在问题。
Kaiido为他们的防御提供了以下规格:https://html.spec.whatwg.org/multipage/nav-history-apis.html#named-access-on-the-window-object
Knu贡献了这个bug报告:https://www.w3.org/Bugs/Public/show_bug.cgi?id=11960