javascript - html5 dragdrop 无法通过dataTransfer.getData()获取数据
ringa_lee
ringa_lee 2017-04-10 14:30:12
[JavaScript讨论组]

http://jsfiddle.net/LhjpK/

预期的效果是 拖拽后 绿色p获取红色p的 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 在存储时会做一些处理 因此部分场景可能无法用这种方法

ringa_lee
ringa_lee

ringa_lee

全部回复(1)
大家讲道理

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

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号