Javascript Internet explorer 7/8支持正常事件传递,不需要window.event?
众所周知,Internet explorer不支持将事件传递给以下事件处理程序函数: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
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
});