Javascript Internet explorer 7/8支持正常事件传递,不需要window.event?

Javascript Internet explorer 7/8支持正常事件传递,不需要window.event?,javascript,internet-explorer,events,compatibility,Javascript,Internet Explorer,Events,Compatibility,众所周知,Internet explorer不支持将事件传递给以下事件处理程序函数: function clickHandler(e) { // e is undefined in IE e = e || window.event; { 今天让我惊讶的是,我发现事实上确实如此。我忘记在我的一个函数中使用“e=e | | window.event”技巧,但它在IE8中工作 我用IE开发者工具做了一些测试,e对象是完全定义的,甚至在IE7模式下也是如此 我的问题是,既然我不喜欢8之前的IE

众所周知,Internet explorer不支持将事件传递给以下事件处理程序函数:

function clickHandler(e) {
  // e is undefined in IE
  e = e || window.event;
{
今天让我惊讶的是,我发现事实上确实如此。我忘记在我的一个函数中使用“e=e | | window.event”技巧,但它在IE8中工作

我用IE开发者工具做了一些测试,e对象是完全定义的,甚至在IE7模式下也是如此


我的问题是,既然我不喜欢8之前的IE版本,我是否应该完全删除window.event内容?

如果使用DOM0属性方式分配事件处理程序,那么仍然需要
e=e | | window.event位,如果尝试访问
e
的属性,则会出现错误:

document.onclick = function(e) {
    e.cancelBubble = true; // Error
};
如果您使用
attachEvent
,那么您是对的,事件参数将提供给侦听器函数:

document.attachEvent("onclick", function(e) {
    e.cancelBubble = true; // No error
});