У меня очень неприятная проблема с фокусом в Internet Explorer.
У меня есть текстовая область для ввода текста.Эта текстовая область невидима для пользователя и используется только для обеспечения надежного ввода текста для более расширенного просмотра.
Поскольку текстовая область не видна и не должна быть, я использую textarea.focus () вJavaScript для активации ввода текста.До сих пор это работало нормально, где я получал действительно странные результаты.
Для ввода текста я в основном использую это событие плюс точную копию для onkeypress.
textarea.onkeyup = function (e) {
//textarea.value contains the full text
//Update the view with this value
};
Проблема в том, что иногда текстовая область.значение не обновляется.Я даже вижу кнопку в e.keyCode на событии keyup выше, но значение не изменяется.Кажется, это происходит после того, как я щелкнул где-то на странице, но это не вызывает событие размытия.Я регистрирую события onfocus- и onblur, чтобы видеть, когда текстовая область теряет фокус, но это не так.И я все еще получаю события keyup / press / down.
Если я пытаюсь перефокусировать текстовое поле с помощью textarea.focus (), проблема остается.Обходной путь, который я нашел, заключается в том, чтобы сфокусировать окно с помощью window.focus () и сразу после вызова textarea.focus ().Проблема в том, что фокус - это действительно дорогая операция в IE (без шуток), и, поскольку я не могу определить, когда эта проблема возникнет, мне приходится продолжать делать это с определенным интервалом, который серьезно влияет на производительность моего приложения (включает анимацию и т. Д.)..
Я использую точно такой же код для других браузеров, и у меня нет этой проблемы там.