uploadPreview.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. 
  2. var uploadPreview = function(setting) {
  3. var _self = this;
  4. _self.IsNull = function(value) {
  5. if (typeof (value) == "function") { return false; }
  6. if (value == undefined || value == null || value == "" || value.length == 0) {
  7. return true;
  8. }
  9. return false;
  10. }
  11. _self.DefautlSetting = {
  12. UpBtn: "",
  13. DivShow: "",
  14. ImgShow: "",
  15. Width: 100,
  16. Height: 100,
  17. ImgType: ["gif", "jpeg", "jpg", "bmp", "png"],
  18. ErrMsg: "选择文件错误,图片类型必须是(gif,jpeg,jpg,bmp,png)中的一种",
  19. callback: function() { }
  20. };
  21. _self.Setting = {
  22. UpBtn: _self.IsNull(setting.UpBtn) ? _self.DefautlSetting.UpBtn : setting.UpBtn,
  23. DivShow: _self.IsNull(setting.DivShow) ? _self.DefautlSetting.DivShow : setting.DivShow,
  24. ImgShow: _self.IsNull(setting.ImgShow) ? _self.DefautlSetting.ImgShow : setting.ImgShow,
  25. Width: _self.IsNull(setting.Width) ? _self.DefautlSetting.Width : setting.Width,
  26. Height: _self.IsNull(setting.Height) ? _self.DefautlSetting.Height : setting.Height,
  27. ImgType: _self.IsNull(setting.ImgType) ? _self.DefautlSetting.ImgType : setting.ImgType,
  28. ErrMsg: _self.IsNull(setting.ErrMsg) ? _self.DefautlSetting.ErrMsg : setting.ErrMsg,
  29. callback: _self.IsNull(setting.callback) ? _self.DefautlSetting.callback : setting.callback
  30. };
  31. _self.getObjectURL = function(file) {
  32. var url = null;
  33. if (window.createObjectURL != undefined) {
  34. url = window.createObjectURL(file);
  35. } else if (window.URL != undefined) {
  36. url = window.URL.createObjectURL(file);
  37. } else if (window.webkitURL != undefined) {
  38. url = window.webkitURL.createObjectURL(file);
  39. }
  40. return url;
  41. }
  42. _self.Bind = function() {
  43. document.getElementById(_self.Setting.UpBtn).onchange = function() {
  44. if (this.value) {
  45. if (!RegExp("\.(" + _self.Setting.ImgType.join("|") + ")$", "i").test(this.value.toLowerCase())) {
  46. alert(_self.Setting.ErrMsg);
  47. this.value = "";
  48. return false;
  49. }
  50. if (navigator.userAgent.indexOf("MSIE") > -1) {
  51. try {
  52. document.getElementById(_self.Setting.ImgShow).src = _self.getObjectURL(this.files[0]);
  53. } catch (e) {
  54. var div = document.getElementById(_self.Setting.DivShow);
  55. this.select();
  56. top.parent.document.body.focus();
  57. var src = document.selection.createRange().text;
  58. document.selection.empty();
  59. document.getElementById(_self.Setting.ImgShow).style.display = "none";
  60. div.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale)";
  61. div.style.width = _self.Setting.Width + "px";
  62. div.style.height = _self.Setting.Height + "px";
  63. div.filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = src;
  64. }
  65. } else {
  66. document.getElementById(_self.Setting.ImgShow).src = _self.getObjectURL(this.files[0]);
  67. }
  68. _self.Setting.callback();
  69. }
  70. }
  71. }
  72. _self.Bind();
  73. }
  74. function file_click(){
  75. var WARP = document.getElementById('warp');
  76. var WARP_LI = WARP.getElementsByTagName('li');
  77. for(var i=0; i<WARP_LI.length;i++){
  78. new uploadPreview({ UpBtn: "up_img_WU_FILE_"+i, ImgShow: "imgShow_WU_FILE_"+i});
  79. }
  80. }
  81. window.onload = file_click;