2010-06-22 13 views
6

Vous ne savez pas si cela est possible dans tous les navigateurs modernes, mais est-il possible d'utiliser javascript/jquery pour supprimer toutes les balises html, le formatage css, les codes de format Word doc, ect. à partir d'une chaîne de texte comme il est collé dans une zone d'entrée d'une page (dans mon cas un élément défini comme "contenteditable"), donc il va toujours en pur texte?Suppression de tout format HTML/formatage/ect de la chaîne de texte telle qu'elle est collée, via Javascript/JQuery?

Bien sûr, avant même de penser à la partie de nettoyage/désinfection du problème, j'ai d'abord besoin d'un moyen fiable d'écouter et capturer le texte d'un événement paste, que je ne suis pas sûr de savoir comment faire non plus.

Merci à l'avance!

Répondre

2

Il est possible d'utiliser un hack que les versions actuelles de TinyMCE et de CKEditor utilisent. J'ai décrit dans this answer.

0

Probablement cela est possible, mais je vous déconseille par mesure de sécurité, car tout code du côté client peut être altéré Comment vous adresseriez-vous à un cas où javascript a été désactivé ou quelqu'un publiant sur votre page tout en utilisant le firebug Débogueur et sauter la validation?

Utilisez le côté client pour un retour rapide à l'utilisateur, mais ne comptez pas sur cela. Utilisez la validation côté serveur et la désinfection pour effectuer le vrai travail.

+0

La question du code falsifié est vraiment un problème dans ce cas, car il s'agit uniquement d'un système d'administration principal utilisé par des utilisateurs de confiance connus et qui n'est pas accessible publiquement. Le système vous demande également d'avoir javascript activé pour entrer, ce qui résout ce problème. Et la raison pour laquelle je ne veux pas le faire côté serveur est que l'éditeur d'entrée que j'ai implémenté vous permet de faire un formatage très basique après le fait (gras, souligné, hyperliens, etc.), donc je devrais autoriser une mise en forme mais interdire les autres, ce qui pourrait être désordonné. –

+0

@Bill Dami - les utilisateurs de confiance, jusqu'à ce que l'entreprise décide d'ouvrir l'application, ou un utilisateur malveillant dans l'entreprise devient un voyou. – Oded

+0

Vrai, cependant je sais que cette application ne sera jamais ouverte aux utilisateurs publics. Et si un employé ayant accès au système devenait un voyou, leur capacité à sauvegarder des saisies non sécurisées dans l'éditeur serait le moindre de nos soucis :-D –

2

Il est déjà là en TinyMCE donc je suggère de le déployer. Il est également disponible en tant que paquet jQuery et publié sous licence LGPL, ce qui permet de l'utiliser dans un projet commercial.

Voir http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/paste pour la fonctionnalité relative au collage.

+0

Si le projet TinyMCE est open-source et que son code est suffisamment portable pour extraire cette fonctionnalité, je pourrai peut-être l'utiliser, mais en ce qui concerne l'éditeur, ce n'est vraiment pas une option pour moi. font partie d'un éditeur de site Web où vous êtes en train de modifier directement dans la mise en page d'un modèle de site Web en utilisant des régions contenteditable, et non une interface de type éditeur de texte séparé. –

+0

Oui, c'est ce que je voulais dire en postant la réponse - si vous trouvez le cadre entier utilisable ou juste en extraire et en modifier des parties pour un usage personnalisé. –