焦点事件触发IE与现代浏览器中的输入事件

时间:2015-03-25 14:38:08

标签: internet-explorer events input focus

如何防止IE中的焦点/设置选择范围事件后输入事件触发?这里的代码示例:

var setSelectionRange = function (input, selectionStart, selectionEnd) {
    if (input.setSelectionRange) {
        input.focus();
        input.setSelectionRange(selectionStart, selectionEnd);
    }
    else if (input.createTextRange) {
        var range = input.createTextRange();
        range.collapse(true);
        range.moveEnd('character', selectionEnd);
        range.moveStart('character', selectionStart);
        range.select();
    }
};

2 个答案:

答案 0 :(得分:0)

经过长时间的研究,我决定改变功能。输入字符串的条件。如果它不是焦点而不是焦点并设置插入位置。现在输入事件仅触发输入文本不为空。它是跨浏览器的解决方案。

答案 1 :(得分:0)

我遇到了同样的问题,并且发现了这个问题。我在addEventListener方法中切换为使用“ keydown”事件而不是“ input”事件。