97 lines
3.8 KiB
JavaScript
97 lines
3.8 KiB
JavaScript
var uploadPreview = function(setting) {
|
|
/*
|
|
*work:this(当前对象)
|
|
*/
|
|
var _self = this;
|
|
/*
|
|
*work:判断为null或者空值
|
|
*/
|
|
_self.IsNull = function(value) {
|
|
if (typeof (value) == "function") { return false; }
|
|
if (value == undefined || value == null || value == "" || value.length == 0) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
/*
|
|
*work:默认配置
|
|
*/
|
|
_self.DefautlSetting = {
|
|
UpBtn: "",
|
|
DivShow: "",
|
|
ImgShow: "",
|
|
Width: 100,
|
|
Height: 100,
|
|
ImgType: ["gif", "jpeg", "jpg", "png"],
|
|
ErrMsg: "图片以.gif,.jpeg,.jpg,.png为后缀",
|
|
callback: function() { }
|
|
};
|
|
/*
|
|
*work:读取配置
|
|
*/
|
|
_self.Setting = {
|
|
UpBtn: _self.IsNull(setting.UpBtn) ? _self.DefautlSetting.UpBtn : setting.UpBtn,
|
|
DivShow: _self.IsNull(setting.DivShow) ? _self.DefautlSetting.DivShow : setting.DivShow,
|
|
ImgShow: _self.IsNull(setting.ImgShow) ? _self.DefautlSetting.ImgShow : setting.ImgShow,
|
|
Width: _self.IsNull(setting.Width) ? _self.DefautlSetting.Width : setting.Width,
|
|
Height: _self.IsNull(setting.Height) ? _self.DefautlSetting.Height : setting.Height,
|
|
ImgType: _self.IsNull(setting.ImgType) ? _self.DefautlSetting.ImgType : setting.ImgType,
|
|
ErrMsg: _self.IsNull(setting.ErrMsg) ? _self.DefautlSetting.ErrMsg : setting.ErrMsg,
|
|
callback: _self.IsNull(setting.callback) ? _self.DefautlSetting.callback : setting.callback
|
|
};
|
|
/*
|
|
*work:获取文本控件URL
|
|
*/
|
|
_self.getObjectURL = function(file) {
|
|
var url = null;
|
|
if (window.createObjectURL != undefined) {
|
|
url = window.createObjectURL(file);
|
|
} else if (window.URL != undefined) {
|
|
url = window.URL.createObjectURL(file);
|
|
} else if (window.webkitURL != undefined) {
|
|
url = window.webkitURL.createObjectURL(file);
|
|
}
|
|
return url;
|
|
}
|
|
/*
|
|
*work:绑定事件
|
|
*/
|
|
_self.Bind = function() {
|
|
document.getElementById(_self.Setting.UpBtn).onchange = function() {
|
|
if (this.value) {
|
|
if (!RegExp("\.(" + _self.Setting.ImgType.join("|") + ")$", "i").test(this.value.toLowerCase())) {
|
|
layer.open({
|
|
content: _self.Setting.ErrMsg,
|
|
style: 'background-color:#09C1FF; color:#fff; border:none;',
|
|
time: 2
|
|
});
|
|
this.value = "";
|
|
return false;
|
|
}
|
|
if (navigator.userAgent.indexOf("MSIE") > -1) {
|
|
try {
|
|
document.getElementById(_self.Setting.ImgShow).src = _self.getObjectURL(this.files[0]);
|
|
} catch (e) {
|
|
var div = document.getElementById(_self.Setting.DivShow);
|
|
this.select();
|
|
top.parent.document.body.focus();
|
|
var src = document.selection.createRange().text;
|
|
document.selection.empty();
|
|
document.getElementById(_self.Setting.ImgShow).style.display = "none";
|
|
div.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)";
|
|
div.style.width = _self.Setting.Width + "px";
|
|
div.style.height = _self.Setting.Height + "px";
|
|
div.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = src;
|
|
}
|
|
} else {
|
|
document.getElementById(_self.Setting.ImgShow).src = _self.getObjectURL(this.files[0]);
|
|
}
|
|
_self.Setting.callback();
|
|
}
|
|
}
|
|
}
|
|
/*
|
|
*work:执行绑定事件
|
|
*/
|
|
_self.Bind();
|
|
} |