我遇到了一个我写过的脚本的问题。
我想使用error
或true
输出变量false
。
我无法从“error
”函数输出fileErrors
变量。
任何人都可以查看下面的代码并告诉我是否存在明显的问题,为什么它不输出?
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);
};
答案 0 :(得分:0)
fileErrors
函数未被调用。
当触发图像元素的onload
事件时将调用它。但是,只要您没有将元素添加到 DOM 树,onload
事件就不会被触发。
如果要调试正确设置的错误变量,可以像这样手动调用onload
事件处理函数:
image.onload()