【问题标题】:Event handling issue with FirefoxFirefox 的事件处理问题
【发布时间】:2013-10-08 21:50:00
【问题描述】:

我有一个非常基本的代码,它不能在 Firefox 上运行,但在 Chrome 上运行良好。我只想在用户单击页面中的任何位置时触发一个功能。代码如下:

window.onload = function(){
 alert(document.body);   // Is executed correctly
 document.body.onclick = function(){
       /*do stuff*/
  }
}
 

它在 Chrome 上运行得很好,但在 Firefox 上却不行。我尝试了很多变通方法,但都不起作用,并且错误控制台中没有错误。

  function set(){
       /*do stuff*/
  }
 document.body.onclick = set;

document.body.addEventListener('click',set,false);

我正在尝试使用一个非常基本的 html 页面

 <h1>Hello World</h1>

它们都不起作用。我错过了什么?

【问题讨论】:

  • 该代码在&lt;head&gt; 中吗?如果是,身体还不存在。
  • 在您的 HTML 代码中哪里有 JavaScript 代码?
  • @bfavaretto 代码确实在头部,但是所有的 JavaScript 都是在 "window.onload" 事件之后触发的。我正在编辑我的帖子。
  • 你在哪里点击?如果您单击 h1(在正文的 offsetHeight 内),它应该可以工作。如果您希望整个视口可点击,请使用document.onclick
  • @André Chrome 在 quirks 模式下不正确地调整 HTML 文档的主体以填满整个视口。您的文档是否处于 quirks 模式?

标签: javascript firefox dom-events


【解决方案1】:

你确定在html页面加载后绑定onclick事件吗?

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>

$(function (){
  document.body.onclick = function() { alert("Hi");};
});

这在 Chrome 和 Firefox 中都可以正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-03
    • 1970-01-01
    • 1970-01-01
    • 2012-04-30
    • 2011-05-16
    • 2011-01-23
    相关资源
    最近更新 更多