2012-03-02 11 views
7

Busco en goggle y no encontré ninguna respuesta. La nueva API del portapapeles admite copiar imagen al portapapeles utilizando document.exec command. En caso afirmativo, ¿cómo puedo copiar la imagen data url en el portapapeles como imagen?¿Las extensiones de Chrome admiten copiar imagen al portapapeles?

Soy el desarrollador de la extensión de captura de pantalla de página web y busco la forma de copiar la imagen al portapapeles. También busco la forma de abrir la imagen con un software específico.

Respuesta

1

Estoy desarrollando una extensión de cromo ScreenShotShare, tengo la necesidad de copiar la imagen recortada en el portapapeles también. Y encontré que la solución funciona para mí.
1. Añadir "clipboardWrite", "clipboardRead" a los permisos de archivo manifest.json
2. hacer un trabajo ejemplar en la background.html con background.js
3. añadir a background.html
4. I poner en práctica el "copyImageToClipboard" para funcionar en background.js

copyImageToClipboard: function() { 
    var img = $('clipboard-img'); 
    img.src = localStorage[this.screenshotURIName]; // I store the image URI in localStorage 
    var div = $('clipboard-div'); 
    div.contentEditable = true; 
    var range; 
    if (document.createRange) { 
     range = document.createRange(); 
     range.selectNodeContents(div); 
     window.getSelection().removeAllRanges(); 
     window.getSelection().addRange(range); 
     div.focus(); 
     document.execCommand('copy'); 
    } 
    div.contentEditable = false; 
    } 

+0

No funciona para mí. Nada se copia (solo el título de la imagen si lo especifico). ¿Tienes algún ejemplo de trabajo? – Shluch

+0

Encontré que de esta manera solo funciona para el editor de texto como Evernote, y no para las palabras y las páginas. Un amigo me dijo: centrar el img y desencadenar cmd + c o ctrl + c, lo he intentado, pero no el éxito. Un tipo dijo en webkit, hay un error para sobrescribir keyCode of KeyboardEvent, probé http://jsbin.com/EruQEFoH/2/edit, pero aún no ha sido exitoso – Cyanny

1

API clipboardData casi se aplique en todos los navegador, de modo de comandos en lugar docuemnt.exec, se puede tratar a continuación también referirse al siguiente enlace que tiene de casos de uso similar a la tuya.

https://www.lucidchart.com/techblog/2014/12/02/definitive-guide-copying-pasting-javascript/

clipboardData.setData ('text/plain', selection.getText()); clipboardData.setData ('application/officeObj', selection.serialize()); clipboardData.setData ('image/bmp', draw (selection)); clipboardData.setData ('text/html', ...);

+0

¿Alguien puede confirmar que esto está funcionando en Chrome? – Aminadav

+0

puedes instalar la extensión lucidchart chrome y jugar aruond con ella, sabrás que puedes copiar y pegar su dibujo personalizado. – Gomes

Cuestiones relacionadas