检测 JavaScript 中的 HTML5 拖放支持
我正在尝试检测 JavaScript 中的 HTML5 拖放支持。 Modernizr 似乎无法处理这个测试用例。
I'm trying to detect the HTML5 Drag And Drop support in JavaScript. Modernizr seems to not handle this test case.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可以执行以下操作:
您可以在此处查看使用上述检查的快速演示测试。
另外,这里有一个很好的功能检测(不是浏览器检测,耶!)列表,维护得相当好以防万一您还在寻找其他 HTML5 功能。
You can do this:
You can see a quick demo test using the above check here.
Also, there's a nice feature detection (not browser detection, yay!) list that's fairly well maintained here in case you're looking for other HTML5 features as well.
在 document.createElement('span') 中检测“draggable”似乎是个好主意,但实际上行不通。iOS
声称元素中存在draggable,但不允许拖放。(参考:Safari Web 内容指南:处理事件)
IE9 声称元素中没有可拖动功能,但允许拖放(参考:我在 IE 中测试 HTML5 拖放。)
Modernizr 是一个更好的选择,因为它不会混淆 IE。但是,它声明 HTML5 拖放可以在 iOS 上使用。
以下是我检测 HTML5 拖放的方法:
Detecting "draggable' in document.createElement('span') seems like a good idea, but in practice it doesn't work.
iOS claims that draggable is in the element but doesn't allow drag and drop. (Reference: Safari Web Content Guide: Handling Events)
IE9 claims that draggable is NOT in the element, but does allow drag and drop. (Reference: my testing HTML5 drag and drop in IE.)
Modernizr is a better choice because it doesn't confuse IE. However, it states that HTML5 drag and drop is available on iOS.
Here's how I detect HTML5 drag and drop:
这就是它在 Modernizr 中的实现方式
This is how it's implemented in Modernizr
使用 Modernizr 中的“isEventSupported”方法检查是否支持“dragstart”和“drop”。请参阅如何检测浏览器支持文件 API 拖放< /a>.
Check if "dragstart" and "drop" are supported, using the "isEventSupported" method in Modernizr. See How to detect browser support File API drag n drop.