【问题标题】:Has Chrome improperly implemented the dataTransfer object?Chrome 是否不正确地实现了 dataTransfer 对象?
【发布时间】:2010-12-26 03:20:15
【问题描述】:

当我在 dragstart 事件中这样做时:

e.dataTransfer.setData('text/plain', 'text');
e.dataTransfer.setData('text/html', 'html');
e.dataTransfer.setData('application/x-bookmark', 'bookmark');

这在 drop 事件中:

for (var i = 0; i < e.dataTransfer.types.length; i++) {
   var type = e.dataTransfer.types[i];
   console.log(type + ":" + e.dataTransfer.getData(type));
}

我应该有:

text/plain:text
text/html:html
application/x-bookmark:bookmark

正如我在 FF 中得到的,但实际上我得到了:

Text:text
text/plain:text

在 Chrome 中。那些数据去哪儿了?这是否意味着 chrome 没有正确实现 dataTransfer 对象?我该怎么办?

我在 Chrome 4.0.266.0 中运行了这个

【问题讨论】:

  • Chrome 4 还不是测试版吗?你在 3 上试过了吗?
  • 那个mimetype在浏览器中注册了吗?
  • 如果你尝试 Safari(webkit) 会有什么结果?
  • 我不知道 Safari,但是Arora 版本 0.10.2(WebKit 版本 533.3)没有这个 bug。另请参阅我在另一个问题中的相关答案:stackoverflow.com/questions/6767128/…

标签: javascript google-chrome dto


【解决方案1】:

是的,这是 Chrome 中的一个错误。在铬问题跟踪器中查看问题31037 和问题30240(铬是谷歌浏览器的开源版本)。除了等待修复错误之外,我没有其他解决方案。您可以通过提供一个简单的测试用例来帮助他们修复它。

【讨论】:

  • 从 Chrome 12 开始仍然是一个悬而未决的问题。
  • 从 Chrome 13 开始仍然是一个悬而未决的问题
  • 从 Chrome 18 开始仍然是一个悬而未决的问题
  • 再次/仍然是 Chrome 24 的问题
  • 再次/仍然是版本 79.0.3945.88(官方构建)(64 位)的问题
猜你喜欢
  • 1970-01-01
  • 2017-07-06
  • 2015-11-28
  • 1970-01-01
  • 1970-01-01
  • 2010-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多