Ограничение ввода события нажатия клавиши в IFrame, не работает
У меня есть IFrame на моей странице, и я использую designMode="on" в этом iframe для редактирования низкоуровневого расширенного текста.
Меня беспокоит то, что мне не нужно позволять пользователю вводить в него новые строки - это означает, что я хочу ограничить клавиши ввода.
Я сделал это, используя вопрос, размещенный здесь, чтобы прослушать события нажатия клавиш. Но в моем случае нажатия клавиши, если я возвращаю false, ничего не происходит.
Как мне ограничить клавиши ввода в Iframe с помощью designmode?
Код:
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;
}
1 ответ
Решение
Вам нужно позвонить preventDefault
на событие или набор returnValue
в false
для IE. Следующая функция сделает работу:
function preventDefault(evt) {
if (evt.preventDefault) {
evt.preventDefault();
} else if (typeof evt.returnValue !== "undefined") {
evt.returnValue = false;
}
}