2010-06-11 5 views
1

Imaginez que je souhaite qu'un utilisateur puisse copier-coller une sélection de pixels de MSPaint dans une application basée sur un navigateur. Est-ce possible en utilisant JavaScript dans les navigateurs actuels? Cela deviendra-t-il possible en HTML5? Si ce n'est pas le cas, est-ce faisable d'utiliser quelque chose comme Flex/Silverlight, ou est-ce simplement impossible pour l'instant, et vous devriez enregistrer un fichier et le télécharger manuellement?Collage de données non textuelles dans des applications Web

mise à jour: semble que le HTML5 devrait le permettre, mais c'est un moyen dans le futur d'être vraiment utile. Quelques suggestions d'applets Java et de Flash sont mentionnées, probablement Flash serait préférable car certaines parties du client web utiliseraient probablement Flex de toute façon ... Je préfèrerais ne pas avoir d'exigence pour Java et Flash dans mon site.

+0

Pas vraiment une réponse, mais c'est un pas dans la bonne direction, je suis sûr: Pour l'insertion des données directement dans le balisage html, voir data URI scheme (wikipedia). Malheureusement, vous êtes maintenant coincé entre l'image du client dans le presse-papiers et l'encoder dans une chaîne que vous pouvez insérer dans une image src. Malheureusement, en dehors de VB ou Java ou ActiveX (IWindows seulement), il n'y a aucun moyen. –

+0

Si je peux obtenir les données dans l'application web, je peux l'envoyer au serveur et cracher une image de quelque sorte ... le grand bonus de convivialité est que l'utilisateur peut copier-coller des données d'image sans avoir à sauvegarder comme un fichier eux-mêmes et le télécharger. –

Répondre

2

Il y a un examen très approfondi de cette question préalable: Wysiwyg with image copy/paste. Il traite éventuellement des solutions coming behavior in HTML5, ainsi que des solutions Flash et Java applet qui interagissent avec le presse-papiers et que vous pouvez ensuite lier en JavaScript.


Interrogation sur l'applicabilité de Zeroclipboard. Alors, regardez le fichier ZeroClipboard10.as et vous verrez le gestionnaire de clic prend en charge deux formats de données:

private function clickHandler(event:Event):void { 
    // user click copies text to clipboard 
    // as of flash player 10, this MUST happen from an in-movie flash click event 
    Clipboard.generalClipboard.clear(); 
    Clipboard.generalClipboard.setData(ClipboardFormats.TEXT_FORMAT, clipText); 
    Clipboard.generalClipboard.setData(ClipboardFormats.HTML_FORMAT, clipText); 
    ExternalInterface.call('ZeroClipboard.dispatch', id, 'complete', clipText); 
} 

La constante reference for ActionScript's ClipboardFormats indique l'un des formats est un BITMAP_FORMAT. Donc je pense que c'est un bon début.

+0

Merci pour les références. Cependant, je ne suis pas clair comment Zeroclipboard est applicable, il parle de texte et de RTF. J'aimerais voir une discussion sur la façon d'obtenir le contenu du presse-papiers du système en utilisant Flash (en utilisant cette bibliothèque comme référence si applicable) –

+0

Mise à jour avec info sur zeroclipboard! J'espère que cela pourra aider! – artlung

+0

Ces références de classe indiquent toutes 'AIR uniquement' et font partie de flash.desktop. Je pense que je vais vous donner la prime, mais peut-être commencer un fil de discussion explicitement poser des questions sur les presse-papiers Flash/Flex, sur lequel votre contribution est la bienvenue! Merci. –

Questions connexes