2010-08-24 5 views
7

J'ai une grande zone de texte modifiable avec wysihat et contentEditable. J'ai vraiment besoin d'un moyen d'intercepter les événements de collage pour les arrêter, ou traiter leur DOM avant de permettre l'insertion. C'est un peu fou, ils peuvent coller des pages entières dans les zones modifiables.Comment attraper un événement de collage contentEditable?

Est-ce possible?

Venez à l'avenir, arrivez à ma porte. Gourous HTML5, le feu!

Répondre

3

Vous ne pouvez pas accéder au contenu qui sera inséré.

Ce que vous pouvez faire est d'ajouter un écouteur d'événement qui exécute un code de nettoyage sur Ctrl + V (avec un délai d'attente, il voit le texte collé)

1

L'événement se déclenche textInput avant que le texte est collé, et est compatible avec ctrl + v et d'autres façons de coller du texte (comme le menu contextuel, etc.), il a aussi une propriété appelée .data qui devrait/peut contenir le contenu collé, mais je n'ai pas encore vu cela dans les navigateurs soutenir l'événement textInput.

Cependant, l'événement d'entrée déclenche/après/le collage (lorsque le dom a déjà changé), donc je suppose qu'un couplage de ces deux pourrait fonctionner dans l'intervalle.

Ou .. vous pouvez simplement utiliser l'événement pâte;)

2

le onpaste événement fonctionne très bien, au moins u peut rejeter le comportement d'insertion utilisateur

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