Уровень техники в функции Копировать в буфер обмена (Мои исследования)
Альтернатива Flash
- Я нашел следующие альтернативы:
- Zclip: мы используем
- zeroclipboard (ancestor, 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 refference: http://help.adobe.com/en_US/air/reference/html/flash/system/System.html
- Таким образом, мы не можем передать форматированный текст через флеш.
Альтернатива 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
Это coffeescript.
Если служба (/resources/copy_to_clipboard/) служит для текста, она копируется вправо. Но если он сервер DOCX файла, он не копируется прямо в буфер обмена. Взгляните на контроллер рельсов:
def copy_to_clipboard
send_file @resource.resource_content.content.file.file, :type => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'
end
Вопрос
Вы в любое время решили копировать данные BINARY в буфер обмена? и как?
Спасибо