如何在javascript中判断IE事件类型

时间:2012-02-21 14:44:44

标签: javascript javascript-events

从serval书中学习一些js代码 像

function doSomething(e) {
    if (!e) {
        var e = window.event;
        alert("this is IE!");
    } 
}

假设我有一个元素

<h1 onclick="doSomething(event)">Hello World2</h1>

当我点击它时,它在IE中没有警报(至少在IE6中),我使用的方式不正确?

第二个问题是,假设每次我使用它都可以工作,

我必须发送一个事件参数,即使我不是吗? 我可以在没有参数的情况下判断IE事件类型吗?

3 个答案:

答案 0 :(得分:0)

这是因为你拥有的东西,e始终是对Event对象的引用。 event属性中的onclick解析为IE中的window.event,而在不支持window.event的Firefox等浏览器中,可以使用event变量属性值的范围。另请参阅this answer

您需要检查window.event的情况是您使用属性分配事件处理程序时:

var h1 = document.getElementsByTagName("h1")[0];
h1.onclick = doSomething;

答案 1 :(得分:0)

你的意思是这个

function doSomething(e) {
  if (window.event) {
    e = window.event;
    alert("this is IE!");
  }
  // here you can use e in either IE or Gecko/webkit
}

答案 2 :(得分:-1)

Youo没有写任何其他条件,这就是为什么它什么都不做,

根据你的代码当你点击链接Hello world时,一个事件就会通过,你写的是这样的(!E),这是假的,所以它什么都不做

试试这个会发出警报

function doSomething(e) {
    if (e) {
        var e = window.event;
        alert("this is IE!");
    } 
}

如果您想使用窗口事件,您可以像 window.event.target 一样使用firefox和ie window.event.srcElement