首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在javascript中判断IE事件类型

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

Stack Overflow用户
提问于 2012-02-21 22:44:44
回答 3查看 480关注 0票数 0

从几本书中学习一些js代码,比如

代码语言:javascript
复制
function doSomething(e) {
    if (!e) {
        var e = window.event;
        alert("this is IE!");
    } 
}

假设我有一个元素

代码语言:javascript
复制
<h1 onclick="doSomething(event)">Hello World2</h1>

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

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

我必须发送一个事件参数,不是吗?不带参数可以判断IE事件类型吗?

EN

回答 3

Stack Overflow用户

发布于 2012-02-21 22:51:04

这是因为对于您已有的内容,e始终是对Event对象的引用。在IE中,onclick属性中的event解析为window.event,而在不支持window.event的浏览器中,event变量在属性值的范围内可用。另请参见this answer。

当您使用属性分配事件处理程序时,您确实需要检查window.event:

代码语言:javascript
复制
var h1 = document.getElementsByTagName("h1")[0];
h1.onclick = doSomething;
票数 0
EN

Stack Overflow用户

发布于 2012-02-21 23:15:21

你的意思是这样的

代码语言:javascript
复制
function doSomething(e) {
  if (window.event) {
    e = window.event;
    alert("this is IE!");
  }
  // here you can use e in either IE or Gecko/webkit
}
票数 0
EN

Stack Overflow用户

发布于 2012-02-21 22:57:33

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

根据您的代码,当您单击链接Hello world时,会传递一个事件,您编写的代码为(!E),这是假的,因此它不会执行任何操作

试试这个,它会发出警报

代码语言:javascript
复制
function doSomething(e) {
    if (e) {
        var e = window.event;
        alert("this is IE!");
    } 
}

如果您想使用window事件,您可以像用于firefox和ie window.event.srcElement window.event.target那样执行操作

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9379499

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档