我正在编写一个应该支持文件的HTML5拖放API的应用程序,就像这里描述的那样.我想对浏览器是否支持这种疯狂进行编程检查:)现在有效的解决方案是检查浏览器是否提供了FileReader类,如下所示:
if (typeof(FileReader) == "undefined") { $("#dropbox").hide(); } else { // connect events $("#filebox").hide(); }
但它显然不是正确的(我根本不使用那个类).
有任何想法吗?
检查FileReader是否存在是正确的方法.FileReader是File Api的官方部分.我会把它与Modernizr结合起来.版本1.2将提供拖放支持.您应该能够在GitHub上获取源代码并立即开始使用它. http://github.com/Modernizr/Modernizr/blob/master/modernizr.js
if (!!FileReader && Modernizr.draganddrop) { // sexy drag and drop action } else { // no drag and drop support available :( }
如果您还没有看到潜入HTML5,那么您一定要查看Mark Pilgrim关于检测HTML5的建议.
我不得不对dshaw在IE8中的支持做出一点改动:
if (!!window.FileReader && Modernizr.draganddrop) { // sexy drag and drop action } else { // no drag and drop support available :( }
你可以在这里试试
if ("files" in DataTransfer.prototype) {...}