0

谁能指出我的 htmlEvent对象的文档?


奖金阅读

我知道全局Event对象存在的唯一原因是因为它在Stackoverflow 答案中被提及:

onclick="SomeEvent(this, event)"

function SomeEvent( el, event ) {
    var target = event.srcElement || event.target;

    if( el === target ) {
        // run your code
    }
}

它似乎具有以下属性:

  • srcElement
  • target

谷歌搜索我在HTML DOM 事件对象上找到了 W3 School 的页面,其中列出了以下属性

  • bubbles: 返回事件是否为冒泡事件
  • cancelable: 返回事件是否可以阻止其默认操作
  • currentTarget: 返回事件监听器触发事件​​的元素
  • eventPhase:返回当前正在评估事件流的哪个阶段
  • target返回触发事件的元素
  • timeStamp返回创建事件的时间(相对于纪元的毫秒数) -type返回事件的名称

方法

  • initEvent(): 指定事件类型,事件是否可以冒泡,是否可以阻止事件的默认动作
  • preventDefault():如果事件是可取消的,则取消该事件,这意味着不会发生任何通常由实现作为事件结果而采取的默认操作
  • stopPropagation():在事件流期间防止事件的进一步传播

它不见了srcElement,所以可以肯定地说它不是完整的文档。


然后是对象上的微软页面event。它没有任何文档;只提到对象。但它确实提到:

在某些事件期间,某些属性可能没有有意义的值。例如,fromElementtoElement属性

W3Schools 页面没有提及fromElementtoElement属性;所以它不完整。

MSDN 页面引用了 W3C 的链接:

标准信息

文档对象模型 (DOM) 2 级 HTML 规范,第 1.6.5 节

对该页面的搜索没有提及fromElementor toElement

那么任何人都可以指出我的 htmlEvent对象的文档吗?

4

2 回答 2

1

MDN 站点提供了非常可靠的信息:https ://developer.mozilla.org/en/DOM/event 。您的event.toElement属性是非标准的 Microsoft 事物,undefined在 Firefox 中对属性进行了快速测试:

<body onclick="alert(event.srcElement)">Click

要使用的正确属性是target. 另请注意,event不是全局的,它只是一个局部变量。建议您使用addEventListenerMDN 页面中描述的添加 DOM 事件。

quirksmode.org有很好的跨浏览器兼容性表格。

W3schools...嗯http://w3fools.com

由于您想了解更多有关 IE 特定srcElement属性的信息,请参阅 Microsoft 的文档。从srcElement 属性

获取最初将事件分派到的元素。与目标比较。

评论

注意 提供 srcElement 属性是为了向后兼容。请改用目标属性。

于 2012-05-17T13:51:47.700 回答
0

Javascript 本身只是一个概念。它融合了不同的方言,如 Jscript 和 Gecko Javascript。现在不同的浏览器对 Javascript 的处理方式不同,因此互联网上有大量不同的文档。

现在谈论事件:

  • IE 有两种事件模型
  • Mozilla 和 Safari 两个不同的
  • Opera 有三个

然后兼容性:

  • IE DOM0 事件模型的工作方式与其他所有浏览器的 DOM0 事件模型不同
  • IE 专有的 attachEvent 事件模型(Opera 也支持)不同于 W3C DOM2 事件模型
  • Mozilla、Safari 和 Opera 支持 W3C DOM2 事件
  • 与其他三个相比,事件对象在 IE 中具有非常不同的一组属性,与您正在谈论的事件模型无关。

事实上,不管你说的是哪种事件模型,你都会发现四大浏览器在各个方面的差异。这就是为什么您没有找到事件对象的特定全局文档的原因。

于 2012-05-17T13:58:46.930 回答