gpt4 book ai didi

javascript - Safari 5.1 破坏了 HTML 原生拖放功能?

转载 作者:技术小花猫 更新时间:2023-10-29 12:08:16 25 4
gpt4 key购买 nike

昨晚,我想我应该做一个快速项目来演示 HTML5 功能并尝试一些东西。但是,我似乎无法弄清楚如何让拖放在 Safari 中工作,而它在 Chrome 和 Firefox 中完美运行。更准确地说,当您尝试将网站内的图像拖入拖放区域时,似乎不会在 Safari 中触发拖放事件。同时,当您从桌面拖放文件时它会触发。

我不太确定,但我很确定当我在工作中尝试相同的脚本时(我有 Safari 5.0.2 等),它触发了 drop 事件(明天会检查它以确保) 并给了我预期的与 FileReader 相关的错误。但是,当我刚在自己的 PC 上安装 Safari 5.1 时,我只能得到 dragover、enter 和 leave 事件(如果文件被拖到浏览器中,也会掉落)。

我在谷歌上搜索了一段时间,但似乎没有找到一个在 Safari 5.1 中实际工作的拖放示例。甚至 Safari 的 dev-centre's sample不起作用,更不用说html5demo.com 1html5demo.com 2 .这让我想到 Safari 是否有错误,或者他们可能实现了一些未反射(reflect)在开发中心(最后更新于 2009 年)中的强制性内容。

我要修复的脚本位于 my site (抱歉,没有问题的具体代码可以发布,因为它似乎在其他地方也被破坏了)。

附言!我可能在拼命尝试修复 Safari 中的拖放功能时在我自己的网站中引入了一些错误,但我现在太累了无法修复它们。

更新:刚刚在工作中确认拖放事件确实在 Mac OS X 上的 Safari 5.0.2 中触发。

更新 2: 还确认在 Win 7 上的 Safari 5.0.6 一切正常,同一台计算机在 5.1 上失败

最佳答案

使用 Safari 5.1.7 Mac 进行测试:

要查看 drop 事件触发,您必须处理 dragover 事件并调用 event.preventDefault()

这是我找到答案的(非常有趣的)讨论:

http://www.quirksmode.org/blog/archives/2009/09/the_html5_drag.html

我不知道这是否真的解决了问题,因为提问者的网站(至少截至今天)是这样做的。它在我的机器上运行良好(HTML5 演示页面也是如此)。但这可能会帮助那些不知道这个相当不直观的实现细节的人遇到这个问题。

关于javascript - Safari 5.1 破坏了 HTML 原生拖放功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7002832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com