Restringindo inserir o evento KeyPress em um iframe, não funciona
-
19-09-2019 - |
Pergunta
Eu tenho um iframe na minha página e estou usando o designMode = "ON" neste iframe para uma edição de texto rico em pequeno nível.
Minha preocupação é que não preciso permitir que o usuário insira novas linhas - ou seja, quero restringir as teclas Enter.
Eu fiz isso usando o Pergunta postada aqui Para ouvir os eventos do KeyPress. Mas no meu evento KeyPress, se eu retorna falso, nada acontece.
Como restringir as teclas Enter Enter no iframe com o DesignMode?
Código:
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;
}
Solução
Você precisa ligar preventDefault
no evento ou conjunto returnValue
para false
para ie. A função a seguir fará o trabalho:
function preventDefault(evt) {
if (evt.preventDefault) {
evt.preventDefault();
} else if (typeof evt.returnValue !== "undefined") {
evt.returnValue = false;
}
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow