Javascript HTML5拖放getData()仅适用于Chrome中的拖放事件?
我目前正在从事一个使用HTML5拖放API的项目,以提供附加功能,包括在浏览器中拖入和拖出项目。我目前遇到的问题是特定于Chrome的(否则只在Firefox中测试,其工作原理与预期一致) 问题是,我不能在任何事件中使用Javascript HTML5拖放getData()仅适用于Chrome中的拖放事件?,javascript,html,drag-and-drop,Javascript,Html,Drag And Drop,我目前正在从事一个使用HTML5拖放API的项目,以提供附加功能,包括在浏览器中拖入和拖出项目。我目前遇到的问题是特定于Chrome的(否则只在Firefox中测试,其工作原理与预期一致) 问题是,我不能在任何事件中使用event.dataTransfer.getData(type)方法返回dragstart事件上的数据集,除了drop事件 在绑定到dragstart事件(确实触发)后,我将事件设置为: 然后在drop事件中,我可以很好地获取数据 event.dataTransfer.getDa
event.dataTransfer.getData(type)
方法返回dragstart
事件上的数据集,除了drop
事件
在绑定到dragstart
事件(确实触发)后,我将事件设置为:
然后在drop
事件中,我可以很好地获取数据
event.dataTransfer.getData('text/plain')
但是,我不能在任何其他事件(如dragover
)上使用与上述相同的方法。即使我在调用setData()
(即在dragstart
回调中)后尝试在线路上使用上述方法,它仍将返回undefined
因此,在Chrome中,问题是Chrome中的getData
总是返回未定义的,除了drop
事件回调之外。(在Firefox中,我可以成功获得正确的数据。)
如果您对同一拖动元素的dataTransfer
对象有引用,那么为什么在删除数据之前无法获取数据
只是想知道:
- 以前有人在Chrome上遇到过这样的问题吗
- 有什么解决办法
- 或者,这是Chrome需要解决的问题吗
资源:
WebKit,也就是Chrome,在调用getData
时受到很大限制。你不能在里面做。我想。参考:
数据只在拖放时可用,这是一项安全功能,因为当您在网页上拖动某个内容时,网站可能会抓取数据
似乎是相关的。可能是@Lombas的重复,它应该可以工作,因为bug的状态表示已解决,已于2013-03-22修复
event.dataTransfer.getData('text/plain')