Limitare l'invio di evento keypress in un IFrame, non funziona
-
19-09-2019 - |
Domanda
Ho un IFrame all'interno della mia pagina e sto usando il designMode="on" su questo iframe per un piccolo livello di editing di testo rtf.
La mia preoccupazione è che non ho bisogno di permettere all'utente di inserire nuove righe, il che significa che, voglio limitare inserire le chiavi.
L'ho fatto utilizzando il domanda postato qui per ascoltare la pressione di eventi.Ma nel mio evento keypress, se ho return false, non accade nulla.
Come faccio a limitare inserire le chiavi nel Iframe con designmode?
Codice :
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;
}
Soluzione
È necessario chiamare preventDefault
su un evento o un set returnValue
per false
per IE.La funzione riportata di seguito farà il lavoro:
function preventDefault(evt) {
if (evt.preventDefault) {
evt.preventDefault();
} else if (typeof evt.returnValue !== "undefined") {
evt.returnValue = false;
}
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow