我有一个画布,我需要用户能够粘贴图像。 我希望这是跨浏览器。我只想使用html / javascript。我也愿意使用flash对象。
答案 0 :(得分:4)
这在Chrome中运行良好,但到目前为止我还没弄清楚如何让它在Firefox中运行。您可以使用此jQuery插件来检测剪贴板粘贴。一旦你从剪贴板获得数据,我会假设你知道如何绘制图像。
# jquery.paste_image_reader.coffee
(($) ->
$.event.fix = ((originalFix) ->
(event) ->
event = originalFix.apply(this, arguments)
if event.type.indexOf('copy') == 0 || event.type.indexOf('paste') == 0
event.clipboardData = event.originalEvent.clipboardData
return event
)($.event.fix)
defaults =
callback: $.noop
matchType: /image.*/
$.fn.pasteImageReader = (options) ->
if typeof options == "function"
options =
callback: options
options = $.extend({}, defaults, options)
this.each () ->
element = this
$this = $(this)
$this.bind 'paste', (event) ->
found = false
clipboardData = event.clipboardData
Array::forEach.call clipboardData.types, (type, i) ->
return if found
return unless type.match(options.matchType)
file = clipboardData.items[i].getAsFile()
reader = new FileReader()
reader.onload = (evt) ->
options.callback.call(element, file, evt)
reader.readAsDataURL(file)
found = true
)(jQuery)
使用:
$("html").pasteImageReader
callback: (file, event) ->
# Draw the image with the data from
# event.target.result
答案 1 :(得分:0)
据我所知,使用JavaScript和HTML无法做到这一点。但是,this blog post描述了使用Java小程序实现此目的