从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事件类型吗?
答案 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