2
Modernizr提供了一种检测浏览器是否支持拖放操作的方法,但它无法充分说明浏览器是否支持拖放文件。这有可能特征测试吗?或者它仍然需要浏览器嗅探?是否有可能为dataTransfer.files支持功能测试?
Modernizr提供了一种检测浏览器是否支持拖放操作的方法,但它无法充分说明浏览器是否支持拖放文件。这有可能特征测试吗?或者它仍然需要浏览器嗅探?是否有可能为dataTransfer.files支持功能测试?
使用Modernizr.filereader
检测
数据传递是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
}