ecm*_*aut 5 javascript input feature-detection dom-events
浏览器input事件已经存在了足够长的时间,除了“不支持”之外,浏览器事件至少可以分为三个不同的支持级别(github 上有关 W3C 规范的最新历史记录):
inputType、也不beforeinput、支持)beforeinput事件、属性inputType等)inputTypes - deleteByComposition, insertCompositionText, insertFromComposition)您如何检测对beforeinput事件的支持?截至撰写本文时(2018 年 4 月),Firefox 的排名为 0,Chrome 和 Safari 的排名更靠前。
目前,我最好的技巧是构建一个合成InputEvent并测试它是否具有该inputType属性,并将其用作“可能至少支持 W3C 规范的第 1 级,并且据此推断,beforeinput也支持该事件”的代理:
const input_events_level_1_or_better = 'inputType' in (new InputEvent('input'));