3

Modernizr提供了一种检测浏览器是否支持拖放的方法,但它无法充分判断浏览器是否支持文件拖放。是否可以对此进行功能测试?或者它仍然需要浏览器嗅探?

4

1 回答 1

2

用于Modernizr.filereader检测

dataTransfer 是不可检测的因素之一,因为并非所有浏览器都会公开它(如 webkit),因此检测 FileReader 是否应该这样做。而且我不记得它在哪个浏览器中(android / safari等),但是文件被暴露在target.files而不是dataTransfer.files这样检测对象是否在触发事件中实际存在是最好的。

if( typeof(e.dataTransfer) !== 'undefined' && typeof(e.dataTransfer.files) !== 'undefined' ) {
    files = e.dataTransfer.files;
} else if( typeof(e.target.files) !== 'undefined') {
    files = e.target.files;
} else {
    //Bail out
}
于 2013-05-09T14:16:21.227 回答