Je veux mettre en œuvre ctrl + c événement dans la toile (comme dans les peintres) de la région sélectionnée à la mémoire tampon du système d'exploitation. Basé sur this réponse Je peux ajouter copy
écouteur et changer les données du presse-papiers là-bas - qui fonctionne parfaitement avec le texte. Mais je ne peux pas trouver comment mettre Image
/ImageData
objet là-bas. Voici la documentation MDN copy et setData. On dirait qu'il n'y a rien sur le format image/*
. Eh bien Specification ne dit rien aussi bien. Mais je sens si premier param nommé format
dans setData
il devrait y avoir un moyen de mettre le fichier là.Comment définir Image à clipboardData dans l'événement oncopy
est ici où je viens jusqu'à présent:
document.addEventListener('copy', function(e) {
var data = ctx.getImageData(params.left, params.top, params.width, params.height);
var file = new File(data.data, "file.png", {type: "image/png"});
e.clipboardData.items.add(file, 'image/png'); // This doesn't work, But it create the structure like on the image below(with items and types, but without FileList)
e.clipboardData.setDragImage(tool.img, 10, 10); // doesn't work
e.clipboardData.setData("image/png", tool.file); // doesn't work
e.preventDefault();
})
J'ai aussi trouvé la méthode setDragImage, je mis en œuvre, mais après avoir mis Image
il ne semble pas dans un tampon.
REMARQUE:
Lorsque je colle l'image DE Planchette événement « coller » montre la structure d'événement comme le image ci-dessous, donc je suppose que je dois créer quelque chose de similaire.
Une idée?
p.s. Je connais aussi document.execCommand('copy');, mais ça ne marche pas en chrome (du moins dans mon cas) donc je ne veux pas l'utiliser.