8 lines
No EOL
2.3 KiB
JavaScript
8 lines
No EOL
2.3 KiB
JavaScript
/***********************************************************************************************************************
|
|
MessageBox - A jQuery Plugin to replace Javascript's window.alert(), window.confirm() and window.prompt() functions
|
|
Author : Gaspare Sganga
|
|
Version : 1.1
|
|
License : MIT
|
|
Documentation : http://gasparesganga.com/labs/jquery-message-box
|
|
***********************************************************************************************************************/
|
|
!function(a,b){function f(){if(!c&&d.length){var e=d.shift(),f=e.settings;c=!0;var j=a("<div>",{id:"messagebox_overlay"}).appendTo("body"),k=a("<div>",{id:"messagebox"}).data("queueItem",e).appendTo(j);f.width!==b&&k.width(f.width);var l=a("<div>",{id:"messagebox_content",html:f.message}).appendTo(k);if(f.input){var m="boolean"==typeof f.input?a("<input>",{type:"text"}):a(f.input);m.attr("id","messagebox_content_input").appendTo(l).trigger("focus")}var n=a("<div>",{id:"messagebox_buttons"}).appendTo(k);a("<button>",{id:"messagebox_button_done",text:f.buttonDone}).on("click",g).appendTo(n),f.buttonFail&&a("<button>",{id:"messagebox_button_fail",text:f.buttonFail}).on("click",g).prependTo(n),a(window).on("resize",{messageBox:k},h).on("keydown",i).triggerHandler("resize"),k.animate({top:f.top},f.speed)}}function g(b){var d=a(b.currentTarget),e=d.closest("#messagebox"),g=e.find("#messagebox_content_input").val(),j=e.data("queueItem");e.animate({top:"-100%"},j.settings.speed,function(){a(window).off("resize",h).off("keydown",i),a("#messagebox_overlay").remove(),"messagebox_button_done"==d.attr("id")?j.deferred.resolve(g):j.deferred.reject(g),c=!1,f()})}function h(b){var c=b.data.messageBox;c.css("left",(a(b.currentTarget).width()-c.outerWidth())/2)}function i(b){return 27===b.keyCode?(a("#messagebox_button_fail").trigger("click").length||a("#messagebox_button_done").trigger("click"),!1):13===b.keyCode?(a("#messagebox_button_done").trigger("click"),!1):void 0}var c=!1,d=[],e={buttonDone:"OK",buttonFail:b,message:"",input:!1,speed:200,top:"25%",width:b};a.MessageBoxSetup=function(b){a.extend(!0,e,b)},a.MessageBox=function(b){"object"!=typeof b&&(b={message:b});var c=a.Deferred(),g=a.extend(!0,{},e,b);return d.push({deferred:c,settings:g}),f(),c.promise()}}(jQuery); |