2010-08-24 19 views
7

Tengo un gran área de texto editable con wysihat y contentEditable. Realmente necesito una forma de interceptar eventos de pegar para detenerlos o procesar su DOM antes de permitir la inserción. Es un poco loco que la gente pueda pegar páginas web enteras en las áreas editables.¿Cómo se puede capturar un evento de pegar contentEditable?

¿Esto es posible?

Venga en el futuro, llegue a mi puerta. Gurus HTML5, ¡fuego!

Respuesta

3

No puede acceder al contenido que se insertará.

Lo que puede hacer es añadir un detector de eventos que se ejecuta algún código de limpieza en Ctrl + V (con un tiempo de espera, por lo que ve el texto pegado)

1

El textInput desencadena el evento antes de que se pega el texto, y es compatible con ctrl + v y otras maneras de pegar texto (como el menú contextual, etc.), también tiene una propiedad llamada .data que debe/puede contener los contenidos que se pegan, pero no he visto esto aún en los navegadores que lo hacen admite el evento textInput.

Sin embargo, el evento de entrada se dispara/después/la pasta (cuando el dom ya ha cambiado), así que supongo que algún acoplamiento de los dos podría funcionar mientras tanto.

O .. usted podría utilizar el evento pasta;)

2

la onpaste caso funciona bien, al menos u puede rechazar el comportamiento del usuario de inserción

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