gpt4 book ai didi

javascript - 当我们按下 BACKSPACE/DEL/do CUT 时,IE9 中的 oninput 不会触发

转载 作者:技术小花猫 更新时间:2023-10-29 12:14:59 25 4
gpt4 key购买 nike

当我们按下 BACKSPACE/DEL/do CUT 时,我们用来解决 IE9 不触发输入事件的问题的最干净的解决方案是什么?

最干净的意思是代码不臭

最佳答案

我开发了一个 IE9 polyfill用于退格/删除/剪切。

(function (d) {
if (navigator.userAgent.indexOf('MSIE 9') === -1) return;

d.addEventListener('selectionchange', function() {
var el = d.activeElement;

if (el.tagName === 'TEXTAREA' || (el.tagName === 'INPUT' && el.type === 'text')) {
var ev = d.createEvent('CustomEvent');
ev.initCustomEvent('input', true, true, {});
el.dispatchEvent(ev);
}
});
})(document);

出于某种原因,在 IE9 中,当您在文本字段内删除时,会触发 selectionchange 事件。

因此,您唯一需要做的是:检查选择的事件元素是否为输入,然后我告诉元素分派(dispatch) input 事件,这是它应该做的。

将代码放在页面的任何位置,所有删除操作现在都会触发 input 事件!

关于javascript - 当我们按下 BACKSPACE/DEL/do CUT 时,IE9 中的 oninput 不会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6382389/

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