Português (Brasil)

Ferramentas para desenvolvedores · Editor HTML WYSIWYG

Rich Text na área de transferência: como a formatação transita entre os aplicativos

· Fundo

HTML área de transferência conteúdo editável

HTML e representações da área de transferência em texto simples seguindo caminhos separados para um editor
Ilustração vetorial original ToolAcre

Explica os vários formatos que uma cópia rich text coloca na área de transferência, como cada aplicativo escolhe um e por que a marcação colada nunca é exatamente o que foi copiado.

A mesma cópia, três pastas diferentes — abre com o conteúdo colado em um navegador, um terminal e um cliente de e-mail

Um parágrafo copiado pode chegar como conteúdo formatado em um editor de navegador e caracteres não formatados em um terminal porque os destinos solicitam representações diferentes. O manipulador de pasta de ToolAcre solicita HTML e texto simples à área de transferência e segue uma ramificação fixa em vez de confiar na inserção padrão do navegador.

Se HTML estiver presente, o fragmento rico original nunca entra diretamente na superfície. Ele passa primeiro pelo desinfetante. Se HTML estiver ausente, texto simples será inserido. Essa regra local explica o comportamento deste editor sem afirmar como cada cliente de e-mail, sistema operacional ou pacote de escritório prioriza os dados da área de transferência.

Este manipulador de pasta lê text/html e text/plain; sabores mais amplos da área de transferência estão fora da evidência

Uma área de transferência pode conter múltiplas representações de uma seleção. Esta implementação trata explicitamente de `text/html` e `text/plain`. Ele não enumera RTF, imagens, referências de arquivo ou formatos específicos de aplicativos, portanto, eles não devem ser considerados entradas suportadas.

As duas strings podem codificar informações diferentes. O texto simples contém caracteres e quebras de linha, enquanto HTML pode conter parágrafos, listas, ênfases e links, além de atributos indesejados. ToolAcre favorece a estrutura quando disponível, mas a restringe por meio de seu elemento, atributo e política URL antes da inserção.

Quem escreve o sabor HTML - explica que o aplicativo de origem o gera, e é por isso que as pastas do Word e do Google Docs parecem tão diferentes

O aplicativo de origem cria a representação HTML, e é por isso que duas cópias visualmente semelhantes podem fornecer wrappers e apresentações diferentes. ToolAcre não identifica o produtor. Aplica uma regra genérica: wrappers e atributos não suportados são removidos independentemente da origem.

Isso evita que catálogos sem fonte de componentes internos do Word ou do Google Docs se tornem reivindicações de produtos. A lista de remoção informa ao escritor exatamente o que este analisador rejeitou. Se a fidelidade a um aplicativo de origem for importante, capture um dispositivo real do ambiente suportado e teste-o em vez de confiar em um exemplo de artigo genérico.

Como o destino é escolhido — abrange a ordem de preferência e os atalhos para colar como texto simples

O destino escolhe por código. Aqui, HTML não vazio vence; caso contrário, será usado texto simples. Não há opção na barra de ferramentas para “colar como texto simples” e as fontes do repositório não definem o comportamento dos atalhos de teclado. Os navegadores e sistemas operacionais podem oferecer tais gestos de forma independente.

O tratamento de descarte reflete a mesma ideia com DataTransfer: evitar padrões, ler HTML e valores simples, higienizar HTML antes de `insertHTML` ou enviar caracteres simples por meio de `insertText`. Ao contrário de colar, o caminho de soltar não exibe a mesma contagem detalhada de remoções, embora a atualização ainda atualize o documento visível.

Os metadados do fragmento da plataforma não são analisados ​​explicitamente por esta implementação

Algumas plataformas agrupam fragmentos da área de transferência HTML em metadados ou marcadores, mas ToolAcre não contém nenhum analisador explícito para um formato de plataforma nomeado. Seu tokenizer vê a string retornada por `getData("text/html")` e processa a marcação reconhecida. Este artigo, portanto, omite a sintaxe do cabeçalho, compensações e garantias específicas do sistema operacional.

Se os wrappers aparecerem como comentários, os comentários serão removidos. Se os metadados chegarem fora do HTML reconhecido, o comportamento deverá ser testado. Uma possibilidade qualitativa não é suficiente para reivindicar apoio ou rejeição a um protocolo de plataforma cujo código nunca nomeia.

Exemplo resolvido: compare uma carga útil rica da área de transferência com uma carga útil simples

Copie um parágrafo não confidencial contendo texto forte, uma lista curta e um link https. Uma pasta rica pode reter essas estruturas permitidas, remover o estilo de origem e adicionar rel ao link. Inspecione a fonte e o aviso de remoção. Em seguida, cole uma representação simples em um ambiente que não forneça HTML.

O resultado simples contém caracteres inseridos na seleção; qualquer estrutura de bloco é decidida pelo host de edição do navegador, em vez de restaurada do HTML original. Compare palavras e limites de linha separadamente dos elementos. O exercício demonstra a tradução entre representações, não a cópia byte por byte.

O que isso não cobre: ​​APIs da área de transferência, imagens, atalhos de plataforma ou matrizes de permissão

Este artigo não cobre programação navigator.clipboard, prompts de permissão, imagens da área de transferência, arquivos, RTF, atalhos móveis ou uma matriz de preferências de plataforma cruzada. Ele também não afirma que a pasta rica interceptada torna HTML hostil arbitrário seguro para publicação.

O sanitizador de ToolAcre é estreito e reconhece diferenciais do analisador. Seu sandbox bloqueia a execução na visualização local, mas o HTML copiado sai desse ambiente. Um servidor de recebimento precisa de um sanitizador e de uma política de saída baseados em analisador apropriado, enquanto os usuários devem evitar colar segredos em qualquer página não revisada.

Conclusão: colar é uma tradução, não uma cópia — resume o modelo e como o editor HTML WYSIWYG de ToolAcre permite inspecionar o que a tradução produziu

Uma pasta rica é uma tradução: a origem escreve representações, o destino escolhe uma e ToolAcre filtra o HTML escolhido antes da inserção. A compreensão dessa sequência explica por que a formatação pode desaparecer sem tratar a área de transferência como quebrada.

Use acessórios representativos, inspecione a fonte resultante e preserve o conteúdo original quando a limpeza puder remover o significado. A pasta simples é útil para redefinir a apresentação, enquanto a pasta rica pode reter a estrutura. Nenhum dos caminhos isenta o destino de saneamento, testes de compatibilidade ou revisão editorial.