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