html5 dragdrop 无法通过dataTransfer.getData()获取数据

http://jsfiddle.net/LhjpK/

预期的效果是 拖拽后 绿色div获取红色div的 data-color
代码如果保存成文件 通过 file:// 访问 可以实现预期的效果
但部署在服务端后 getData() 返回值为空


关于http协议下 getData() 返回值为空的解释
http://www.whatwg.org/specs/web-apps/current-work/multipage/user-interaction.html#drag-data-store

dragenterdrag data store modeProtected mode
即 只能枚举其中项 但不能取出具体值

最后用了一种不科学的方法实现的上述效果
formatdata 合并在 dataTransfer.setData(format, data)format 属性中
获取时再拆出来
format 在存储时会做一些处理 因此部分场景可能无法用这种方法

已邀请:

xjbt

赞同来自: wuer0520 supergaryli huanghank

汗,总算给我找到原因了,因为dargenter事件不支持用dataTransfer.getData()读取,只有在drop的时候可以,你把dropenter改成drop是没有问题的。引文给出了解决办法,创建一个全局变量或者存储在一个地方,enter的时候获取,over的时候清除就OK了。

cc: http://stackoverflow.com/questions/8762635/getting-the-filename-during-the-dragenter-event

要回复问题请先登录注册