【发布时间】:2012-11-30 15:55:27
【问题描述】:
复制到剪贴板功能的最新技术(我的调查)
Flash 替代品
- 我找到了以下替代方案:
- Zclip:我们正在使用
- zeroclipboard(祖先,zclip 使用它的按钮 flash 电影):只有文本
- Clippy:页面中只有文字https://github.com/mojombo/clippy
- 您可以在 (ActionScript:Flash) 代码中看到:http://code.google.com/p/zeroclipboard/source/browse/trunk/ZeroClipboard.as(第 77 行)
- 他们使用 System.setClipboard(cliptText) 调用,它只支持纯文本字符串,正如我们在 Adobe AIR API 参考中看到的那样:http://help.adobe.com/en_US/air/reference/html/flash/system/System.html
- 所以我们不能通过 Flash 传递格式化文本。
HTML5 替代
草案中有一个 API 用于标准化剪贴板事件,但目前尚未在任何浏览器中实现 http://dev.w3.org/2006/webapi/clipops/
我的 Rails/Zclip 实现
我正在使用 zclip(基于 zeroclipboard)将文本从 restfule 服务复制到系统剪贴板:
$('.copy-to-clipboard').zclip
path:'/ZeroClipboard.swf'
setHandCursor: true
copy: ->
ajaxReturn = $.ajax
type: 'GET'
async: false
url: '/resources/copy_to_clipboard/' + $(this).attr("class").match(/[0-9]+/)
return ajaxReturn.responseText
这是咖啡脚本。
如果服务 (/resources/copy_to_clipboard/) 提供文本,则它被正确复制。但是,如果它为 DOCX 文件提供服务,它不会直接复制到剪贴板。看看 rails 控制器:
def copy_to_clipboard
send_file @resource.resource_content.content.file.file, :type => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
end
问题
您是否随时解决了将 BINARY 数据复制到剪贴板的问题?以及如何?
谢谢
【问题讨论】:
标签: javascript flash coffeescript clipboard