Intento copiar un conjunto de HTML y texto sin formato en el portapapeles, para que cada editor pueda elegir si quiere pegar text/html o text/plain .
Estoy usando navigator.clipboard.write() (la API del portapapeles asíncrono ).
El truco es bastante simple, puede pasar varios blobs a un ClipboardItem :
const blob = new Blob([ '<a href="https://stackoverflow.com/">goto stack</a>' ], { type: "text/html" }); const blobPlain = new Blob(['goto stack'], { type: "text/plain" }); navigator.clipboard.write([ new ClipboardItem({ [blob.type]: blob, [blobPlain.type]: blobPlain },), ])Tenga en cuenta que esto no funcionará en todos los navegadores (ahora mismo).