2010-08-24 2 views
7

Ho una grande area di testo modificabile con wysihat e contentEditable. Ho davvero bisogno di un modo per intercettare gli eventi di pasta per fermarli o elaborare il loro DOM prima di consentire l'inserimento. È un po 'strano che le persone possano incollare intere pagine web nelle aree modificabili.Come si può catturare un evento incolla di contentEditable?

È possibile?

Vieni avanti, arriva sulla mia porta di casa. Guru HTML5, fuoco!

risposta

3

Non è possibile accedere ai contenuti che verranno inseriti.

Che cosa si può fare è aggiungere un listener di eventi che gestisce un certo codice di pulizia su Ctrl + V (con un timeout, quindi vede il testo incollato)

1

Il textInput generato l'evento prima che il testo viene incollato, ed è compatibile sia con ctrl + v sia con altri modi di incollare il testo (come il menu di scelta rapida ecc.), ha anche una proprietà chiamata .data che dovrebbe/potrebbe contenere il contenuto che viene incollato, ma non ho ancora visto questo popolato nei browser che fanno supporta l'evento textInput.

Tuttavia, l'evento di input genera/dopo/l'incolla (quando la dom è già stata modificata), quindi suppongo che alcuni di questi due potrebbero funzionare nel frattempo.

O .. si potrebbe utilizzare l'evento pasta;)

2

il onpaste evento funziona bene, almeno u può rifiutare il comportamento inserto utente

someElement.onpaste = function() { 
    // doSomething() 
    return false; // to prevent user insert 
}