javascript - 您如何以编程方式确定 HTML 对象可以监听哪些事件?

标签 javascript dom safari webkit gecko

我一直在查看 developer.mozilla.org 上的文档和 Apple 开发文档,但我找不到说明您是否可以通过编程方式确定特定 HTML 标记是否支持给定 eventListener 的文档。

就像我知道 <script>标签不支持点击监听器,因为没有什么可以点击,但我怎么知道呢?

或者除此之外,是否有关于每个标签支持哪些事件的简单引用?

最佳答案

根据 Perfection Kills,除了少数极端情况,是的,您可以:

The trick is that many modern browsers report property corresponding to an event name as being existent in an element.

基本上,代码如下所示:

'onclick' in document.documentElement; // true
'onclick2' in document.documentElement; // false

他用它来检测各种浏览器对事件的支持,但它也可以用来检测元素是否支持事件:

An event must be checked on an element that could actually originate that event.

所以你也会得到这样的结果:

'onreset' in document.documentElement; // false
'onreset' in document.createElement('input'); // true

关于javascript - 您如何以编程方式确定 HTML 对象可以监听哪些事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7667533/

相关文章:

javascript - 将 JavaScript 变量传递给 Python

javascript - 解构变量的空检查

javascript - iframe 内的内容根本不加载或显示警告 - iframe src 不安全且与包含页面不同的域

html - 在 Chrome 中工作但在 Safari 或 Firefox 中工作的绝对定位 div 的边距底部

javascript - 发送 POST 数据时阻止 Safari 规范化 Unicode?

javascript - 为什么 CSS 背景属性会覆盖之前定义的实例?

Javascript DOM .querySelector() 空问题

javascript - 使用 Javascript 查找文本溢出的位置

html - 固定元素内溢出

html - Safari 上的菜单显示问题