Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在dropzone.js中启用复制和粘贴文件_Javascript_Jquery_Dropzone.js - Fatal编程技术网

Javascript 在dropzone.js中启用复制和粘贴文件

Javascript 在dropzone.js中启用复制和粘贴文件,javascript,jquery,dropzone.js,Javascript,Jquery,Dropzone.js,我正在使用dropzone.js。我想在其中实现“复制和粘贴”功能 我尝试的是: 内部dropzone.js: paste: function(e) { Dropzone.prototype.emit("paste"); } Dropzone.prototype.paste = function(e) { var items, _ref; if ((e != null ? (_ref = e.clipboardData) != null ? _ref.items : v

我正在使用
dropzone.js
。我想在其中实现“复制和粘贴”功能

我尝试的是:

内部dropzone.js:

paste: function(e) {
    Dropzone.prototype.emit("paste");
}

Dropzone.prototype.paste = function(e) {
    var items, _ref;
    if ((e != null ? (_ref = e.clipboardData) != null ? _ref.items : void 0 : void 0) == null) {
        return;
    }
    this.emit("paste", e);
    items = e.clipboardData.items;
    if (items.length) {
        return this._addFilesFromItems(items);
    }
};
页面级脚本:

<script>
    var dropZone = Dropzone.forElement('#dropzone1');
    dropZone.paste();
</script> 

var dropZone=dropZone.forElement(“#dropzone1”);
dropZone.paste();
上面没有调用
paste:function(e){..}


如何纠正它?

这对我很有效。它使用。 由于我不是以编程方式创建dropzone,所以我必须在运行时使用init()方法存储它

请看这里以了解更多信息


如果不想使用其他JS库,可以通过从粘贴事件中以文件形式检索数据,相当轻松地将dropzone与粘贴事件集成:

// create dropzone however you wish
var myDropzone = new Dropzone("div#element", { url: "/path/to/upload"});
// add paste event listener to the page
document.onpaste = function(event){
  var items = (event.clipboardData || event.originalEvent.clipboardData).items;
  for (index in items) {
    var item = items[index];
    if (item.kind === 'file') {
      // adds the file to your dropzone instance
      myDropzone.addFile(item.getAsFile())
    }
  }
}

只需添加此代码。不要声明
URL
,因为
URL
也在PHP或编码文件中声明,请将此代码粘贴到视图文件(HTML、PHP等)。

如果使用jQuery,您可以使用略短的版本:
jQuery(“body”).fileClipboard({accept:'image/*',on:{load:function(e,file){ DROPZOR.ADFILE(文件);} },我已经在下面评论了如何在浏览器中将DROPZORD连接到剪贴板粘贴事件。回答您的问题:为什么代码> > DROPZORZ.PATEST(<)/代码>不起作用:考虑<代码>巴斯()
您添加的方法依赖于粘贴事件的日期。直接调用它将不会有必要的粘贴事件,因此您将点击第一个
return;
语句。您可以awesome@John你能帮忙吗?我的粘贴无法正常工作。单击“粘贴”在哪里?我想我必须将鼠标悬停在dropzone区域D上吗?我试过了,结果“完全不起作用。@cyber8200您的代码中有Javascript错误。请注释/删除块
document.getElementById(“全部提交”)。addEventListener
您的HTML中没有具有该ID的元素,该ID限制了document.onPaste块的执行。删除错误块后,Paste似乎起作用。”。
// create dropzone however you wish
var myDropzone = new Dropzone("div#element", { url: "/path/to/upload"});
// add paste event listener to the page
document.onpaste = function(event){
  var items = (event.clipboardData || event.originalEvent.clipboardData).items;
  for (index in items) {
    var item = items[index];
    if (item.kind === 'file') {
      // adds the file to your dropzone instance
      myDropzone.addFile(item.getAsFile())
    }
  }
}
var myDropzone = new Dropzone(".dropzone", { });

document.onpaste = function(event){
  var items = (event.clipboardData || event.originalEvent.clipboardData).items;
  for (index in items) {
    var item = items[index];
    if (item.kind === 'file') {
      // adds the file to your dropzone instance
      myDropzone.addFile(item.getAsFile())
    }
  }
}