夏邑12345_前端

uploadPreview.js 3.7KB

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