【问题标题】:Chrome executing code twice while IE is notChrome 执行代码两次,而 IE 不执行
【发布时间】:2011-12-08 13:31:38
【问题描述】:

我制作了一个小的图像修改 javascript 函数,它在 Chrome 中执行两次,但在 IE 中执行一次。我似乎找不到导致此问题的问题。

脚本本身执行一次。我在脚本顶部放了一条“console.log”消息来验证这一点。函数开头还有一条日志消息,它在 chrome 中执行了两次,但在 IE 中执行了一次(应该如此)。

这是我用于图像的 HTML 代码:

<img src="/images/test.jpg" grayscale="/images/test.jpg?edit&grayscale" alt="" onload="grayscaleHover(this, .75);">

【问题讨论】:

  • "在 chrome 检查器中检查 'modifiers.js' 的代码源。"这个modifier.js是什么?您必须在问题中发布来源
  • 不要发布链接并要求我们查看源代码,因为之后您可能会更改链接上的内容,并使这个问题对后来遇到它的人没那么有用。跨度>
  • 记住每次更改源时都会执行 onload 事件
  • 删除 onload 事件并将其替换为脚本标记,该标记执行带有“document.getElementById”参数的函数并没有帮助。

标签: javascript google-chrome


【解决方案1】:

我发现了问题。

页面通过AJAX调用加载,在jQuery中动画后加载,例如:

$("#loadbar").animate({...},500,function(){ $.ajax here... });

似乎 $.ajax 部分由于某种原因在那里执行了两次。这看起来像一个 jQuery 错误。

【讨论】:

    【解决方案2】:

    嗯...什么时候需要调用该函数?我认为这是您在onload 调用它的事实,这就是问题所在。也许只在onmouseover="your_function"上这样做

    【讨论】:

    • onmouseover 属性的主体是一个将在 mouseover 处理程序中执行的语句。删除括号将无济于事。
    • 我不明白你想说什么或括号与什么有关。
    • onmouseover 不是一个选项。我只需要执行一次代码,因为脚本实际上更改了代码。 - 它用几个 div 和一些 jquery 代码替换了 IMG 标签(参见 modifiers.js)
    猜你喜欢
    • 1970-01-01
    • 2013-04-16
    • 1970-01-01
    • 1970-01-01
    • 2023-01-13
    • 2016-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多