将非文本数据粘贴到基于浏览器的应用程序中

时间:2010-06-11 12:27:55

标签: javascript flex silverlight copy-paste

想象一下,我希望用户能够将选择的像素从MSPaint复制粘贴到基于浏览器的应用程序中。这在当前任何浏览器中都可以使用JavaScript吗?它会在HTML5中成为可能吗? 如果没有,是否可以使用像Flex / Silverlight这样的东西,或者目前根本不可能,你需要保存文件并手动上传它?

更新:听起来像HTML5应该允许它,但这是未来真正有用的方式。提到了Java applet和Flash的一些建议,可能Flash会更好,因为Web客户端的某些部分可能会使用Flex ...我宁愿不要求Java Flash在我的站点。

1 个答案:

答案 0 :(得分:2)

对此前一个问题进行了彻底的审查: Wysiwyg with image copy/paste 。它讨论了可能的coming behavior in HTML5,以及与剪贴板交互的FlashJava applet解决方案,然后您可以将这些解决方案绑定到JavaScript中。


提问者询问了Zeroclipboard的适用性。因此,查看文件ZeroClipboard10.as,您会看到点击处理程序支持两种数据格式:

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 );
}

reference for ActionScript's ClipboardFormats常量表示其中一种格式为BITMAP_FORMAT。所以我认为这是一个非常好的开始。