(function($){ function addHeader(target,title){ var header = $('
'+title+' (crtl+x)
').prependTo(target); var tool = $('
').appendTo(header); $('
').appendTo(tool).bind('click', function(){ target.hide(); target.mask.hide(); target.mask.remove(); target.remove(); }); tool.find('div').hover( function(){$(this).addClass('fwmessager-tool-over');}, function(){$(this).removeClass('fwmessager-tool-over');} ); } function setSize(target){ target.css({ display:'block', top:document.body.scrollTop + document.body.clientHeight/2-100, left:document.body.clientWidth/2 - 100, width:'300', height:'100' }); } function setProperties(win){ var opts = $.extend({},{zIndex:90000,width:300,height:100,left:0,top:0,draggable:false}); var state = $.data(win,'fwmessager', {options:opts}); var body = win.find('.fwmessager-body'); var header = win.find('.fwmessager-header'); var button = win.find('.fwmessager-button'); //处理由于一行字符串过长的问题 if(body.outerWidth()>header.outerWidth()+20){ header.width(body.outerWidth()); button.width(body.outerWidth()); } win.draggable({ handle: '>div.fwmessager-header>div.fwmessager-title', disabled: false, onStartDrag: function(e){ win.css('z-index', state.options.zIndex++); if (state.mask) state.mask.css('z-index', state.options.zIndex++); if (!state.proxy){ state.proxy = $('
').insertAfter(win); } state.proxy.css({ display:'none', zIndex: state.options.zIndex++, left: e.data.left, top: e.data.top, width: ($.boxModel==true ? (win.outerWidth()-(win.outerWidth()-win.width())) : win.outerWidth()), height: ($.boxModel==true ? (win.outerHeight()-(win.outerHeight()-win.height())) : win.outerHeight()) }); setTimeout(function(){ if (state.proxy) state.proxy.show(); }, 500); }, onDrag: function(e){ state.proxy.css({ display:'block', left: e.data.left, top: e.data.top }); return false; }, onStopDrag: function(e){ state.options.left = e.data.left; state.options.top = e.data.top; win.css({left:e.data.left,top:e.data.top}); state.proxy.remove(); state.proxy = null; } }); } /** * create a dialog, when dialog is closed destroy it */ function createDialog(title, content){ var win = $('
').appendTo('body'); var body = $('
').appendTo(win); var cont = $('
').appendTo(body); var pdiv = $('
'); var reg = /\n/g; content = content.replace(reg,'
') pdiv.html(content); addHeader(win,title); cont.append(pdiv); $('
').appendTo(win); return win; } function setButtonClose(win){ var button = win.find("div.fwmessager-button"); $('关闭').appendTo(button).bind('click', function(){ win.hide(); win.mask.hide(); win.mask.remove(); win.remove(); }); return false; } function setButtonOK(win,fn){ var button = win.find("div.fwmessager-button"); $('确定').appendTo(button).bind('click', function(){ win.hide(); win.mask.hide(); win.mask.remove(); fn = window[fn]; if (fn){ fn(true); } }); return false; } function setButtonCL(win,fn){ var button = win.find("div.fwmessager-button"); $('取消').appendTo(button).bind('click', function(){ win.hide(); win.mask.hide(); win.mask.remove(); win.remove(); fn = window[fn]; if(fn){ fn(false); } }); return false; } function setModal(win){ if (win.mask) win.mask.remove(); win.mask = $('
').appendTo('body'); win.mask.css({ width: getPageArea().width, height: getPageArea().height }); return true; } function getPageArea() { if (document.compatMode == 'BackCompat') { return { width: Math.max(document.body.scrollWidth, document.body.clientWidth), height: Math.max(document.body.scrollHeight, document.body.clientHeight) } } else { return { width: Math.max(document.documentElement.scrollWidth, document.documentElement.clientWidth), height: Math.max(document.documentElement.scrollHeight, document.documentElement.clientHeight) } } } jQuery.fwmessager = { show: function(msg) { var win = createDialog('提示信息',msg+''); setSize(win); setButtonClose(win); setModal(win); setProperties(win); jQuery('.buttonlink',win).each(function(){ $(this).linkbutton({plain:false}); }); }, confirm: function(msg,fn) { var win = createDialog('提示信息',msg+''); setSize(win); setButtonOK(win,fn); setButtonCL(win,fn); setModal(win); setProperties(win); jQuery('.buttonlink',win).each(function(){ $(this).linkbutton({plain:false}); }); } }; })(jQuery);