- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道某些浏览器通过 document
中定义的 onXYZ
属性提供支持的 HID 事件,因此可以测试例如通过测试获得触摸支持
if ("ontouchstart" in document) {
...
}
问题是:哪个规范定义元素应包含这些 onXYZ
属性?
这个问题不是关于:我能用这个吗,我应该用这个吗,哪个浏览器支持这个...
我浏览了几乎所有 DOM,事件相关的规范
但没有找到踪迹。
我正在寻找这样的规范措辞:
A browser should define a attribute named
onEVENTNAME
if it does triggerEVENTNAME
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 属性及其应用的对象。
请注意,这不包括触摸界面。从中可以得出两点。
在 HTML5 或 Touch Events 规范中,没有要求有 ontouchstart
、ontouchend
等事件处理程序,事实上它们也不是必须使用触摸事件,因为可以使用 addEventListener
将监听器与事件类型匹配。
没有什么可以阻止新的或更新的规范添加对此类事件的事件处理程序的要求,也可以阻止浏览器在规范中记录此类处理程序之前实现此类处理程序。
因此,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/
我知道某些浏览器通过 document 中定义的 onXYZ 属性提供支持的 HID 事件,因此可以测试例如通过测试获得触摸支持 if ("ontouchstart" in document) {
我是一名优秀的程序员,十分优秀!