跨标准浏览器的JavaScript文档

时间:2011-04-12 04:44:06

标签: dom javascript-events cross-browser w3c web-standards

我正在尝试学习JavaScript,并发现此任务在某些方面有点困难。目前,我正在寻找主要浏览器的事件支持。就事件而言,似乎有两种一般风格:(1)Microsoft方式,(2)标准化方式

我知道IE 8不支持DOM Level 2事件,但IE 9预计支持DOM Level 3事件。在Microsoft方面,存在一个独特的DHTML Events列表。还可以获得event object的说明。

以标准化的方式,我将没有官方规范的DOM Level 0支持和W3C编写的DOM Level 2事件聚集在一起。除了MSIE之外,所有主要浏览器都遵循这种标准化方式,即:Firefox,Chrome,Safari和Opera。每个标准化浏览器都围绕其对事件的支持提供不同级别的文档,如以下链接所示。

DOM级0活动

Gecko DOM Event Handlers

Safari HTML Reference: Supported Attributes

HTML, XHTML, and WML in Opera Presto 2.8

没有关于Chrome的信息。

DOM Level 2活动

W3C DOM Level 2 Specification

Gecko DOM Events(似乎不完整)

Other Gecko DOM Events

Gecko DOM Event Object

WebKit Standards Support Targets(隐含地涵盖了Chrome和Safari的高级别)

DOM 2 UI, Mouse & Mutation Events support in Opera Presto 2.8

说标准化浏览器中的文档可以互操作是否安全?我知道有关此类信息的Quirksmode Compatibility Tables。然而,当遇到问题时,我几乎找不到令人欣慰的东西,并希望那些细节我可以依赖。我还想在此时排除库(例如Jquery等)。

3 个答案:

答案 0 :(得分:2)

没有。浏览器中的关键事件有很多变化,而像jQuery这样的大型库只能将其最小化(正确地,在我看来)。解决这种不一致问题的唯一方法就是向那些学习困难的人学习。我发现的最佳资源是Jan Wolter撰写的这一页:http://unixpapa.com/js/key.html。准确而且相当全面。

答案 1 :(得分:1)

浏览器在检测按键等方面存在各种怪癖。并非所有这些错误都是显而易见的,或者存在于所有版本的浏览器中。我怀疑是否有一个权威来源可以完美地描述任何一个浏览器的事件,更不用说所有浏览器。 ppk非常全面,但他最近将注意力转移到移动设备上。

无论如何,你可能会写一些主要起作用的东西,但这些库的测试数量比你自己做的要多。如果你的目标是学习,那么一定要探索和实验。但是不要重新发明轮子。每当我想要一个DOM的特定应用程序的独立解决方案时(例如,在点击事件上按下了什么鼠标按钮)我首先查看文档,然后我看看各种库是如何做到的。

答案 2 :(得分:0)

大多数人使用http://www.quirksmode.org/作为主要参考