ligerMsg.js 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. (function($) {
  2. $.ligerMsg = {
  3. _alertButFrag : '<input callback="#callback#" type="button" value=" #butMsg# "></input>',
  4. _alertBoxFrag : '<div id="alertMsgBox" class="msg"><div class="msgContent"><div class="#type#">'+
  5. '<div class="msgInner"><h1>#title#</h1><div class="message">#message#</div></div>'+
  6. '<div class="toolBar"><ul>#butFragment#</ul></div></div></div></div>',
  7. _boxId : "#alertMsgBox",
  8. _closeTimer : null,
  9. _types : {
  10. error : "error",
  11. info : "info",
  12. warn : "warn",
  13. correct : "correct",
  14. confirm : "confirm"
  15. },
  16. _title : {
  17. error : "错误",
  18. info : "温馨提示",
  19. warn : "警告",
  20. correct : "成功",
  21. confirm : "请确定"
  22. },
  23. _butMsg : {
  24. ok : "确定",
  25. yes : "是",
  26. no : "否",
  27. cancel : "取消"
  28. },
  29. _getTitle : function(key) {
  30. return this._title[key];
  31. },
  32. //打开对话框
  33. _open : function(type, msg, bottom, buttons) {
  34. var topWindow=self.top;
  35. //不为info和correct的两类型对话框不添加蒙板。
  36. if (!(this._types.info == type || this._types.correct == type)) {
  37. $("<div class='l-window-mask' style='display: block;'></div>").appendTo(topWindow.document.body);
  38. }
  39. var butsHtml = "";
  40. if (buttons) {
  41. for ( var i = 0; i < buttons.length; i++) {
  42. var sRel = buttons[i].call ? "callback" : "";
  43. butsHtml += this._alertButFrag.replace("#butMsg#",
  44. buttons[i].name).replace("#callback#", sRel) + "&nbsp;";
  45. }
  46. }
  47. var boxHtml = this._alertBoxFrag.replace("#type#", type)
  48. .replace("#title#", this._getTitle(type))
  49. .replace("#message#", msg)
  50. .replace("#butFragment#", butsHtml);
  51. if($("div.msg",topWindow.document.body).length>0){
  52. $("div.msg",topWindow.document.body).remove();
  53. }
  54. if($("div.msg",topWindow.document).length>0){
  55. $("div.msg",topWindow.document).remove();
  56. }
  57. var _self=this;
  58. //确保删除之前的提示框.
  59. setTimeout(function(){
  60. $(boxHtml).appendTo(topWindow.document.body);
  61. var objMsgbox=$(_self._boxId,$(topWindow.document));
  62. //在顶部冒出来
  63. if (bottom != true) {
  64. var top=-objMsgbox.height() +"px" ;
  65. objMsgbox.css({top : top }).animate({top : "0px"}, 500);
  66. }
  67. //从右下角冒出来
  68. else {
  69. var height = topWindow.document.documentElement.clientHeight;
  70. objMsgbox.css({top : height + "px",left : "auto",right : "10px"})
  71. .animate({top : height - objMsgbox.height()}, 500);
  72. }
  73. if (_self._closeTimer) {
  74. clearTimeout(_self._closeTimer);
  75. this._closeTimer = null;
  76. }
  77. //如果类型为info,correct,消息框定时关闭
  78. if (_self._types.info == type || _self._types.correct == type) {
  79. _self._closeTimer = setTimeout(function() {
  80. $.ligerMsg.close();
  81. }, 3500);
  82. }
  83. //添加按钮事件处理。
  84. var jCallButs = objMsgbox.find( "input[callback='callback']");
  85. for ( var i = 0; i < buttons.length; i++) {
  86. if (buttons[i].call){
  87. jCallButs.eq(i).click(buttons[i].call);
  88. }
  89. }
  90. },5);
  91. },
  92. _alert : function(type, msg, bottom,callback) {
  93. var op = {
  94. okName : this._butMsg.ok,
  95. okCall : callback
  96. };
  97. var buttons = [ {
  98. name : op.okName,
  99. call : op.okCall
  100. } ];
  101. this._open(type, msg, bottom, buttons);
  102. },
  103. close : function() {
  104. var topWindow=self.top;
  105. var objMsgbox=$("div.msg",$(topWindow.document));
  106. if (objMsgbox.length > 0) {
  107. objMsgbox.each(function(){
  108. var obj=$(this);
  109. //在顶部
  110. if (obj.position().top <= 0) {
  111. obj.animate({top : -obj.height()}, 500, function() {
  112. $(this).remove();
  113. });
  114. }
  115. else {
  116. var height = topWindow.document.documentElement.clientHeight;
  117. obj.animate({top : height}, 500, function() {
  118. $(this).remove();
  119. });
  120. }
  121. });
  122. }
  123. //删除蒙板
  124. $(topWindow.document).find(".l-window-mask").remove();
  125. },
  126. error : function(msg, bottom,callback) {
  127. this._alert(this._types.error, msg, bottom,callback);
  128. },
  129. info : function(msg, bottom,callback) {
  130. this._alert(this._types.info, msg, bottom,callback);
  131. },
  132. warn : function(msg, bottom,callback) {
  133. this._alert(this._types.warn, msg, bottom,callback);
  134. },
  135. correct : function(msg, bottom,callback) {
  136. this._alert(this._types.correct, msg, bottom,callback);
  137. },
  138. confirm : function(msg, callback, bottom) {
  139. var op = {
  140. okName : this._butMsg.ok,
  141. okCall : null,
  142. cancelName : this._butMsg.cancel,
  143. cancelCall : null
  144. };
  145. var buttons = [ {
  146. name : op.okName,
  147. call : callback
  148. }, {
  149. name : op.cancelName
  150. } ];
  151. this._open(this._types.confirm, msg, bottom, buttons);
  152. }
  153. };
  154. })(jQuery);