javascript html代码在IE/Firefox中工作,但在chrome中不工作[重复]

ippsafx7  于 2023-04-10  发布在  Java
关注(0)|答案(1)|浏览(124)

此问题已在此处有答案

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>

使用的图片保存在同一文件夹中。

gopyfrb3

gopyfrb31#

animate同时用作函数名和id,这导致它在Chrome中无法工作。
另外,提到in this post,一个单独的名为animate的函数也可能无法在Chrome中工作,这取决于它的实现方式。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script type="text/javascript">
var frame = 2;
function animatee(){

if(frame == 1){
    frame = frame + 1;
    document.getElementById("animate").src = "http://placehold.it/100";
}
else if (frame == 2){
    frame = frame + 1;
    document.getElementById("animate").src = "http://placehold.it/100/f00";
}
else{
    frame = 1;
    document.getElementById("animate").src = "http://placehold.it/100/00f";
}
}
</script>
</head>
<body>
  <p> clicking the button will change the image.</p>

  <img id="animate" src="http://placehold.it/100/0f0">

  <button onclick="animatee();">click me to animate</button>

</body>
</html>
  • 备注:*

guest271314的观察表明,如果onclick处理程序没有内联,则不存在问题。

window.onload = function() {

  var frame = 2;

  function animate() {
    console.log("animate called")
    if (frame == 1) {
      frame = frame + 1;
      document.getElementById("animatee").src = "http://placehold.it/100x100";
    } else if (frame == 2) {
      frame = frame + 1;
      document.getElementById("animatee").src = "http://placehold.it/200x200";
    } else {
      frame = 1;
      document.getElementById("animatee").src = "http://placehold.it/100/00f";
    }
  }
  
  document.querySelector("button").onclick = animate;
}
<p> clicking the button will change the image.</p>

<img id="animatee" src="http://placehold.it/100/0f0">

<button>click me to animate</button>

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

相关问题