Saltar al contenido

JavaScript copiar contenido de texto enriquecido al portapapeles

Solución:

Con navegadores modernos, si lo desea copiar texto enriquecido solo que hay una solución muy fácil sin usar ningún paquete. Ver http://jsfiddle.net/jdhenckel/km7prgv4/3

Aquí está el código fuente del violín.

<button onclick="copyToClip(document.getElementById('foo').innerHTML)">
  Copy the stuff
  </button>

<div id=foo style="display:none">
  This is some data that is not visible. 
  You can write some JS to generate this data. 
  It can contain rich stuff.  <b> test </b> me <i> also </i>
  <span style="font: 12px consolas; color: green;">Hello world</span> 
  You can use setData to put TWO COPIES into the same clipboard, 
  one that is plain and one that is rich. 
  That way your users can paste into either a
  <ul>
    <li>plain text editor</li>
    <li>or into a rich text editor</li>
  </ul>
</div>

la función

function copyToClip(str) {
  function listener(e) {
    e.clipboardData.setData("text/html", str);
    e.clipboardData.setData("text/plain", str);
    e.preventDefault();
  }
  document.addEventListener("copy", listener);
  document.execCommand("copy");
  document.removeEventListener("copy", listener);
};

Este pequeño complemento JS copia richtext sin usar Flash: https://www.npmjs.com/package/clipboard-js

Está basado en https://clipboardjs.com/, pero es una actualización en mi opinión, porque el original solo admite texto sin formato.

El código es simple:

clipboard.copy({
    "text/html": "<i>Markup</i> <b>text</b>. Paste me into a rich text editor."
});

Bueno, aquí está el trato que la mayoría de los navegadores web modernos no le permitirán tener acceso al portapapeles. Sin embargo, como con todo, hay una solución.

https://github.com/zeroclipboard/zeroclipboard

este es un complemento js / flash que le permite copiar texto a su portapapeles.
(Creo que puede usarlo para texto enriquecido).

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *