1

I am using a custom onValidate method with FineUploader that is working in every browser but IE9. The method is something like this:

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;
    }
}       

The difference is that in IE10, for example, the fileOrBlobData is an object File (seen with an alert) and in IE9 is an object HTMLInputElement.

Why this difference? How can I assure that this is going to work in IE9?

Thanks!

4

1 回答 1

0

传递给validate事件处理程序的参数存在问题。此问题影响所有浏览器,但仅在较旧的浏览器(例如 IE9)中很明显。File由于对象被错误地传递给validate事件处理程序,但File对象的属性与传递给事件处理程序的数据参数对象的预期属性匹配,因此支持 File API 的较新浏览器在很大程度上避免了这个问题。您可以在issue #993 is the Fine Uploader Github issue tracker中阅读更多相关信息。

这已在 Fine Uploader 的最新版本 3.9.0-3 中得到修复。

于 2013-09-18T19:17:35.687 回答