La restricción de pulsación de tecla entrar en un iframe, no funciona
-
19-09-2019 - |
Pregunta
Tengo un iframe dentro de mi página y estoy usando el designMode = "on" en este marco flotante para una edición de texto enriquecido a nivel de pequeña.
Mi preocupación es que yo no permitir al usuario introducir nuevas líneas en ella - es decir, quiero restringir la tecla de entrada
.Lo hice usando la pregunta href="https://stackoverflow.com/questions/328887/disable-javascript-keypress-events-in-iframes"> para escuchar la pulsación de tecla eventos. Pero en mi caso pulsación de tecla, si I return false , no pasa nada.
¿Cómo puedo restringir introducir las claves de marco flotante con 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;
}
Solución
Es necesario llamar preventDefault
sobre el evento o conjunto returnValue
a false
para IE. La siguiente función hará el trabajo:
function preventDefault(evt) {
if (evt.preventDefault) {
evt.preventDefault();
} else if (typeof evt.returnValue !== "undefined") {
evt.returnValue = false;
}
}