我正在为我正在制作的uploader运行以下代码。holder.ondrop=function(e){e.preventDefault();console.log(e);}我希望用户能够将文件从桌面拖到网络浏览器上,然后我想捕获它的位置,以便我可以手动上传它(不想通过javascript进行上传)不过,我的问题是,如何从事件中获取文件的客户端位置,以便将其放入中?谢谢。 最佳答案 这里是mozilla使用事件的dataTransfer对象获取拖拽文件列表的例子EXAMPLE我的例子:holder.ondrop=function(e)
我目前正在尝试测试一些使用拖放的代码。我发现了一些与此有点相关的其他问题,但它们太具体而无法帮助我,或者不够相关。这是一个测试,我正在努力尝试在.on('drop',function(e){....}事件中自动执行代码。主要问题是不是我不能运行里面的代码,而是我不能传输dataTransfer属性,而且我似乎无法伪造它,因为它是只读的。有没有办法伪造dataTransfer属性或以其他方式绕过它?我想出了这个JSFiddle作为我正在尝试做的事情的模板:https://jsfiddle.net/gnq50hsp/53/基本上,如果您能够向我解释(如果可能的话)我如何伪造dataTran
我正在使用jquery将一些代码绑定(bind)到dragstart事件:$new.on('dragstart',function(event){event.originalEvent.dataTransfer.setData("text/html",$new.clone().wrap('').parent().html());});$new是一个jquery对象。目的是将被拖动元素的html附加到事件中,这样我就可以在放下时创建一个副本。Chrome甚至不需要这个事件来完成它。添加此代码后,Firefox可以正常工作。但是IE9在触发事件时抛出SCRIPT65535:Unexpect
我正在玩drag-and-dropAPI并且有两种从DragEvent.dataTransfer收集文件的方法,有readonlyfiles:FileList和readonlyitems:DataTransferItemList。看来items是files的超集,从items收集File[]更复杂,也items在旧的IE中不受支持,所以files更容易使用并且有更好的支持,但是MDN上的文章首先使用items只有当它不受支持时,才切换到files。我的问题是,如果我只需要从DragEvent收集File[]集合,我可以使用dataTransfer.files属性还是dataTransf
我正在尝试让拖放工作,但我似乎完全不知道getData/setData是如何工作的。我正在使用此代码(http://jsfiddle.net/ASKte/218/)varel=angular.element(document.getElementById('drag'));el.attr("draggable","true");el.bind("dragstart",function(e){e.dataTransfer.setData('text','Wherehaveyougone?!?!')});vartarget=angular.element(document.getEleme
假设:一个可以访问file://的本地HTML/Javascript网页在可拖动的HTML元素上开始拖动时,在事件处理函数dragStart(e)中,我如何添加一个File对象,以便它被识别为一个文件并结束在dataTransfer.files列表中?例如:functiondragStart(e){varfile=getSomeFileObjFromSomewhere();e.originalEvent.dataTransfer.effectAllowed="all";e.originalEvent.dataTransfer.setData("file",file);console.l
我有一个代码:element.addEventListener('dragstart',function(e){e.dataTransfer.setData('Text','somethingishere');},false);当我在事件Drop运行时从DataTransfer.getData获取数据。但是当我想在事件dragover或dragenter中获取数据时,数据为空。element.addEventListener('dragover',function(e){vara=e.dataTransfer.getData('Text');console.log(a);},false
我想要实现的是将一个文件附加到一个发布请求,该请求是我使用javascript从拖放字段中获得的。问题是,我不想读取所有输入字段并通过ajax调用发布数据,我想使用@HTML.BeginForm中的默认提交方法。当我这样做时,multipart并不真正包含该文件。(注意:当我只提交文件或当我手动读取所有输入字段并使用单独的ajax提交时它有效。)我的代码:拖放js:varfile;varisDragged=false;varformData;functiondropHandler(ev){isDragged=true;ev.preventDefault();//UseDataTrans
我正在努力做到这一点,以便用户可以将图标从Web浏览器拖到他们的桌面,然后创建一个文本文件。我已经了解了内容部分,但我不知道如何设置文件名。我试过改变dataTransfer.files但那是只读的。我不确定如何实现这一目标。classCrashReportextendsReact.Component{dragStart(event){constdat={name:'test!',crashDate:newDate()};event.dataTransfer.name='tmp.txt';//badevent.dataTransfer.setData('text/plain',JSON
当我在dragstart事件中这样做时:e.dataTransfer.setData('text/plain','text');e.dataTransfer.setData('text/html','html');e.dataTransfer.setData('application/x-bookmark','bookmark');这在drop事件中:for(vari=0;i我应该有:text/plain:texttext/html:htmlapplication/x-bookmark:bookmark正如我在FF中得到的,但实际上我得到了:Text:texttext/plain:te