gpt4 book ai didi

javascript - 哪里指定文档中有一个 "onXYZ"?

转载 作者:行者123 更新时间:2023-11-29 10:43:23 25 4
gpt4 key购买 nike

我知道某些浏览器通过 document 中定义的 onXYZ 属性提供支持的 HID 事件,因此可以测试例如通过测试获得触摸支持

if ("ontouchstart" in document) {
...
}

Chrome watch

问题是:哪个规范定义元素应包含这些 onXYZ 属性?

这个问题不是关于:我能用这个吗,我应该用这个吗,哪个浏览器支持这个...

我浏览了几乎所有 DOM,事件相关的规范

http://www.w3.org/TR/tr-technology-stds

但没有找到踪迹。


更新:澄清:

我正在寻找这样的规范措辞:

A browser should define a attribute named onEVENTNAME if it does trigger EVENTNAME on some event.

 Interface MouseEvents:
onmousedown: null; // define to tell there is a mousedown events can can be listened to
onmouseup: null;
...

DomElement implementes MouseEvents:
...

最佳答案

名称以“on”开头后跟事件类型名称的对象的属性称为“事件处理程序 IDL 属性”。请注意,事件处理程序与事件监听器不同。

Section 7.1.5.2.1 of HTML5.1列出事件处理程序 IDL 属性及其应用的对象。

请注意,这不包括触摸界面。从中可以得出两点。

  1. 在 HTML5 或 Touch Events 规范中,没有要求有 ontouchstartontouchend 等事件处理程序,事实上它们也不是必须使用触摸事件,因为可以使用 addEventListener 将监听器与事件类型匹配。

  2. 没有什么可以阻止新的或更新的规范添加对此类事件的事件处理程序的要求,也可以阻止浏览器在规范中记录此类处理程序之前实现此类处理程序。

因此,if ("ontouchstart"in document) 不是一个好的测试。也许测试触摸支持的更好方法是创建 TouchEvent 并检查其类型。


顺便对比一下the Touch events spec ,它没有提到事件处理程序,更多的硬件不可知的指针事件规范确实提供了 a list of event handlers for pointer events

关于javascript - 哪里指定文档中有一个 "onXYZ"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24596499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com