Outils de développement · Éditeur HTML WYSIWYG
Texte enrichi dans le Presse-papiers : comment le formatage se déplace entre les applications
· Contexte
html presse-papiers contenu modifiable
Explique les multiples formats qu'une copie de texte enrichi place dans le presse-papiers, comment chaque application en choisit un et pourquoi le balisage collé n'est jamais exactement ce qui a été copié.
Même copie, trois collages différents — s'ouvre avec le contenu collé dans un navigateur, un terminal et un client de messagerie
Un paragraphe copié peut arriver sous forme de contenu formaté dans un éditeur de navigateur et de caractères non formatés dans un terminal, car les destinations demandent des représentations différentes. Le gestionnaire de collage de ToolAcre demande au presse-papiers du HTML et du texte brut, puis suit une branche fixe plutôt que de faire confiance à l'insertion par défaut du navigateur.
Si HTML est présent, le fragment riche d'origine n'entre jamais directement dans la surface. Il passe d’abord par le désinfectant. Si HTML est absent, du texte brut est inséré. Cette règle locale explique le comportement de cet éditeur sans affirmer comment chaque client de messagerie, système d'exploitation ou suite bureautique donne la priorité aux données du presse-papiers.
Ce gestionnaire de collage lit text/html et text/plain; les saveurs plus larges du presse-papiers sont en dehors des preuves
Un presse-papiers peut contenir plusieurs représentations d'une sélection. Cette implémentation traite explicitement de `text/html` et `text/plain`. Il n'énumère pas les RTF, les images, les références de fichiers ou les formats spécifiques à l'application, ceux-ci ne doivent donc pas être implicitement considérés comme des entrées prises en charge.
Les deux chaînes peuvent coder des informations différentes. Le texte brut contient des caractères et des sauts de ligne, tandis que le HTML peut contenir des paragraphes, des listes, des emphases et des liens ainsi que des attributs indésirables. ToolAcre privilégie la structure lorsqu'elle est disponible, mais la restreint à sa politique d'élément, d'attribut et d'URL avant l'insertion.
Qui écrit la version HTML – explique que l'application source la génère, c'est pourquoi les collages Word et Google Docs sont si différents
L'application source crée la représentation HTML, c'est pourquoi deux copies visuellement similaires peuvent fournir des wrappers et une présentation différents. ToolAcre n'identifie pas le producteur. Il applique une règle générique : les wrappers et attributs non pris en charge sont supprimés quelle que soit leur origine.
Cela empêche les catalogues non sourcés de composants internes de Word ou de Google Docs de devenir des revendications de produit. La liste de suppression indique à l'auteur exactement ce que cet analyseur a rejeté. Si la fidélité à une application source est importante, capturez un appareil réel à partir de l'environnement pris en charge et testez-le plutôt que de vous fier à un exemple d'article générique.
Comment la destination est choisie : couvre l'ordre de préférence et les raccourcis de collage en texte brut
La destination choisit par code. Ici, le HTML non vide gagne ; sinon, du texte brut est utilisé. Il n'existe pas de commutateur de barre d'outils pour « coller en texte brut » et les sources du référentiel ne définissent pas le comportement des raccourcis clavier. Les navigateurs et les systèmes d'exploitation peuvent proposer de tels gestes indépendamment.
La gestion des suppressions reflète la même idée avec DataTransfer : empêchez les valeurs par défaut, lisez le HTML et les valeurs brutes, nettoyez le HTML avant `insertHTML` ou envoyez des caractères bruts via `insertText`. Contrairement au collage, le chemin de dépôt n'affiche pas le même nombre de suppressions détaillées, bien que l'actualisation mette toujours à jour le document visible.
Les métadonnées des fragments de plate-forme ne sont pas analysées explicitement par cette implémentation
Certaines plates-formes encapsulent les fragments du presse-papiers HTML dans des métadonnées ou des marqueurs, mais ToolAcre ne contient aucun analyseur explicite pour un format de plate-forme nommé. Son tokenizer voit la chaîne renvoyée par `getData("text/html")` et traite le balisage reconnu. Cet article omet donc la syntaxe d'en-tête, les décalages et les garanties spécifiques au système d'exploitation.
Si des wrappers apparaissent sous forme de commentaires, les commentaires sont supprimés. Si les métadonnées arrivent en dehors du HTML reconnu, le comportement doit être testé. Une possibilité qualitative ne suffit pas pour revendiquer le soutien ou le rejet d’un protocole de plateforme que le code ne nomme jamais.
Exemple concret : comparer une charge utile riche du presse-papiers avec une charge utile simple uniquement
Copiez un paragraphe non sensible contenant du texte fort, une courte liste et un lien https. Une pâte riche peut conserver ces structures autorisées, supprimer le style source et ajouter du rel au lien. Inspectez la source et l’avertissement de suppression. Collez ensuite une représentation simple uniquement dans un environnement qui ne fournit aucun code HTML.
Le résultat brut contient des caractères insérés lors de la sélection ; toute structure de bloc est décidée par l'hôte d'édition du navigateur plutôt que restaurée à partir du HTML d'origine. Comparez les mots et les limites de ligne séparément des éléments. L'exercice démontre la traduction entre les représentations, et non la copie octet par octet.
Ce que cela ne couvre pas : API du presse-papiers, images, raccourcis de plate-forme ou matrices d'autorisations
Cet article ne couvre pas la programmation navigator.clipboard, les invites d'autorisation, les images du presse-papiers, les fichiers, le RTF, les raccourcis mobiles ou une matrice de préférences multiplateforme. Il ne prétend pas non plus que le collage enrichi intercepté rend la publication de HTML hostile et arbitraire en toute sécurité.
Le désinfectant de ToolAcre est étroit et reconnaît les différences entre les analyseurs. Son bac à sable bloque l'exécution dans l'aperçu local, mais le code HTML copié quitte cet environnement. Un serveur de réception a besoin d'une politique de nettoyage et de sortie basée sur un analyseur approprié, tandis que les utilisateurs doivent éviter de coller des secrets dans une page non vérifiée.
À retenir : le collage est une traduction, pas une copie – résume le modèle et comment l'éditeur HTML WYSIWYG de ToolAcre vous permet d'inspecter ce que la traduction a produit
Un collage riche est une traduction : la source écrit des représentations, la destination en choisit une et ToolAcre filtre le code HTML choisi avant l'insertion. Comprendre cette séquence explique pourquoi le formatage peut disparaître sans traiter le presse-papiers comme cassé.
Utilisez des luminaires représentatifs, inspectez la source résultante et préservez le contenu original lorsque le nettoyage pourrait supprimer le sens. La pâte ordinaire est utile pour réinitialiser la présentation, tandis que la pâte riche peut conserver la structure. Aucun des deux chemins ne dispense la destination de l’assainissement, des tests de compatibilité ou de la révision éditoriale.