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;
            }
Foi útil?

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
scroll top