是否可以对dataTransfer.files支持进行测试?

时间:2013-02-22 23:27:00

标签: drag-and-drop modernizr browser-detection feature-detection

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

1 个答案:

答案 0 :(得分:2)

使用Modernizr.filereader来检测

dataTransfer是undetectables中的一个,因为并非所有浏览器都公开它(如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
}