我有一个问题与我写的脚本。
我想用true
或false
输出变量error
。
我无法从' fileErrors
'函数中获得error
变量输出。
谁能看看下面的代码,告诉我是否有一个明显的问题,为什么它不输出?
function file() {
var error;
if (window.File && window.FileList && window.FileReader) {
if (!((type == 'jpg') || (type == 'jpeg'))) {
$('#file-info').html('Wrong file type. JPG and JPEG only.').slideDown('slow');
$('.upload-button').attr("disabled", true);
error = true;
} else {
var fileSize = $('.file_field input[type=file]')[0].files[0].size;
var maxFileSize = 8388608;
var maxFileDimension = 1920;
var fileWidth;
var fileHeight;
var url = window.URL || window.webkitURL;
var fileField = $('.file_field input[type=file]')[0].files[0];
var image = new Image();
image.onload = function() {
fileWidth = this.width;
fileHeight = this.height;
fileErrors();
};
image.src = url.createObjectURL(fileField);
function fileErrors() {
if ( fileWidth > maxFileDimension || fileHeight > maxFileDimension ) {
$('#file-info').html('File dimensions exceed '+maxFileDimension+'px.').slideDown('slow');
$('.upload-button').attr("disabled", true);
error = true;
} else if ( fileSize > maxFileSize ) {
$('#file-info').html('File exceeding maximum file size.').slideDown('slow');
$('.upload-button').attr("disabled", true);
error = true;
} else {
$('#file-info').slideUp();
$('.upload-button').attr("disabled", false);
error = false;
}
};
}
} else {
if (!((type == 'jpg') || (type == 'jpeg'))) {
$('#file-info').html('Wrong file type. JPG and JPEG only.').slideDown('slow');
$('.upload-button').attr("disabled", true);
error = true;
} else {
$('#file-info').slideUp();
$('.upload-button').attr("disabled", false);
error = false;
}
}
console.log(error);
};
没有调用fileErrors
函数。
它将在触发图像元素的onload
事件时被调用。但是,只要您没有将元素添加到DOM树中,onload
事件就不会被触发。
如果您想调试错误变量是否正确设置,您可以像这样手动调用onload
事件处理函数:
image.onload()