粘贴到画布内部

Paste inside a Canvas

本文关键字:布内部      更新时间:2024-03-01

前面已经有一个关于它的问题,但它已经过时了。我没有从dartlang的网站或谷歌上找到任何帮助,所以问题又来了。

document.onPaste.listen((e)  {
  //var items = e.clipboardData.getData("image"); 
  var blob = e.clipboardData.items.item(0).getAsFile();
  var reader = new FileReader();
  reader.onLoad.listen((e) {
    var img = new ImageElement()
    ..src = (e.target as FileReader).result;
    img.onLoad.listen((_) {
      mainContext.drawImage(img, 0, 0);
    });
  });
  reader.readAsDataUrl(blob);
});

"items"是以前的测试,而"blob"不应该工作,因为谷歌删除了item()。我还没有找到其他办法。最后一个可能的解决方案是寻找一个javascript库来实现这一点。注意,我甚至在整个文档上都使用onPaste,因为在画布上它不起作用,至少对我来说是这样

  @DomName('DataTransferItemList.__getter__')
  @DocsEditable()
  @Experimental() // untriaged
  DataTransferItem __getter__(int index) native "DataTransferItemList___getter___Callback";

访问数据的唯一可用方法是私有的,并标记为实验性的。

你可以星的错误

  • DataTransferItemList仅在Webkit上受支持
  • HTML文档:为API数据传输添加示例代码

我无法只获取路径或url的图像数据,但你可以尝试:

var text = e.clipboardData.getData('text');

当您检查ClipboardData.types属性时,您可能会得到一个更适合您需要的格式参数。

我之前提到的上一个问题不再过时了。我回答自己的问题是为了让它比编辑更易读。