Ограничение ввода события нажатия клавиши в IFrame не работает

StackOverflow https://stackoverflow.com/questions/1502940

Вопрос

У меня есть IFrame на моей странице, и я использую designMode="on" в этом iframe для редактирования расширенного текста на небольшом уровне.

Меня беспокоит то, что мне не нужно разрешать пользователю вводить в него новые строки - то есть я хочу ограничить клавиши ввода.

Я сделал это с помощью вопрос опубликован здесь для прослушивания событий нажатия клавиш.Но в моем событии нажатия клавиши, если я вернуть ложь, Ничего не произошло.

Как ограничить клавиши ввода в Iframe с помощью режима дизайна?

Код:

      document.getElementById('editor').contentWindow.addEventListener('keypress',restrictEnterKey, true);

            function restrictEnterKey(event) {
                var key=(event.charCode)?event.charCode:((event.keyCode)?event.keyCode:((event.which)?event.which:0));
                if (key == 13) {
                    //alert('me');
                    return false;
                }
                return true;
            }
Это было полезно?

Решение

Вам нужно позвонить preventDefault на мероприятии или съемочной площадке returnValue к false для ИЕ.Следующая функция выполнит эту работу:

function preventDefault(evt) {
    if (evt.preventDefault) {
        evt.preventDefault();
    } else if (typeof evt.returnValue !== "undefined") {
        evt.returnValue = false;
    }
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top