我正在使用一个自定义onValidate方法和FineUploader,它在IE9的每个浏览器中都有效。方法是这样的:
onValidate: function (fileOrBlobData) {
var validExtension = false;
var validExtensions = ["jpg","png"];
var fileName = fileOrBlobData.name || '';
for (i=0; i<validExtensions.length && !validExtension; i++) {
var extRegex = new RegExp('\\.' + validExtensions[i] + '$', 'i');
if (fileName.match(extRegex) != null) {
validExtension = true;
}
if (!validExtension) {
alert('Unsupported file type. Please try again.');
return false;
}
return true;
}
}
不同之处在于,在IE10中,fileOrBlobData是一个对象File(带有警报),而在IE9中是一个对象HTMLInputElement。
为什么会出现这种差异?我怎样才能确保这在IE9中有用?
谢谢!
答案 0 :(得分:0)
传递给validate
事件处理程序的参数存在问题。此问题影响了所有浏览器,但仅在旧版浏览器(如IE9)中才会引起注意。由于File
对象被错误地传递给validate
事件处理程序,而File
对象的属性被错误地传递给{{1}}对象,因此支持File API的较新浏览器在很大程度上不受此问题的影响匹配传递给事件处理程序的数据参数对象的预期属性。您可以在issue #993 is the Fine Uploader Github issue tracker中详细了解相关信息。
最新版本的Fine Uploader:3.9.0-3修复了这个问题。