从几本书中学习一些js代码,比如
function doSomething(e) {
if (!e) {
var e = window.event;
alert("this is IE!");
}
}假设我有一个元素
<h1 onclick="doSomething(event)">Hello World2</h1>当我点击它时,它在IE(至少在IE6中)没有提示,我的使用方式不正确吗?
第二个问题是,假设它可以工作,每次我使用它时,
我必须发送一个事件参数,不是吗?不带参数可以判断IE事件类型吗?
发布于 2012-02-21 22:51:04
这是因为对于您已有的内容,e始终是对Event对象的引用。在IE中,onclick属性中的event解析为window.event,而在不支持window.event的浏览器中,event变量在属性值的范围内可用。另请参见this answer。
当您使用属性分配事件处理程序时,您确实需要检查window.event:
var h1 = document.getElementsByTagName("h1")[0];
h1.onclick = doSomething;发布于 2012-02-21 23:15:21
你的意思是这样的
function doSomething(e) {
if (window.event) {
e = window.event;
alert("this is IE!");
}
// here you can use e in either IE or Gecko/webkit
}发布于 2012-02-21 22:57:33
你没有写任何其他的条件这就是为什么它什么都不做,
根据您的代码,当您单击链接Hello world时,会传递一个事件,您编写的代码为(!E),这是假的,因此它不会执行任何操作
试试这个,它会发出警报
function doSomething(e) {
if (e) {
var e = window.event;
alert("this is IE!");
}
}如果您想使用window事件,您可以像用于firefox和ie window.event.srcElement window.event.target那样执行操作
https://stackoverflow.com/questions/9379499
复制相似问题