Как сделать так, чтобы курсор оставался скрытым ниже абсолютного div в IE? - PullRequest
2 голосов
/ 15 сентября 2011

Оформить эту страницу в IE 8.

Фокус на поле ввода. Мигающий курсор появляется над синим div. В Chrome и Firefox этого не происходит.

Это ошибка браузера? Есть ли обходной путь?

1 Ответ

1 голос
/ 23 сентября 2011

Это действительно проблема с IE.

Возможно, вы можете попытаться использовать элемент span или что-то в качестве поля ввода. Затем вы можете настроить обработчик событий для прослушивания нажатой клавиши.

Например, следующий фрагмент JavaScript позволяет вставить символ во innerHTML элемента:

function addChar(element, event) {
    if (!event) event = window.event;
    element.innerHTML += String.fromCharCode(event.keyCode);
}

... и фрагмент HTML:

<span onkeypress="addChar(this, event);"></span>

Обратите внимание, что вам все еще нужен обходной путь, чтобы браузер не переходил на ранее посещенную веб-страницу при нажатии BACKSPACE.

Это можно сделать, например, с помощью event.preventDefault(). Или вы можете использовать

<body onkeydown="if(event.keyCode==8||event.keyCode==13)return false;">

или что-то.

На http://www.mcemperor.nl/test/hidecaret/, вы можете увидеть пример.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...