如果您使用獨立版本的lhgDialog窗口組件,您只需在頁面head中引入lhgcore.lhgdialog.min.js文件,4.1.1+版本做了修改可以和jQuerya庫同時引用,而且4.1.1+版本的獨立組件的lhgcore庫做了極大的修改,專門為組件定制,壓縮后才6K與組件合在一起總大小才不到20K,效率上得到很大提高,比引用jQuery快很多,但這里要注意如果你同時引用了jQuery庫的話必須把$換成J,如果沒引用jQuery庫則可直接使用$。
<script type="text/javascript" src="lhgcore.lhgdialog.min.js"></script>
如果您的頁面中引入了jQuery庫文件,您只需在頁面head中再引入lhgdialog.min.js文件即可,此時lhgDialog組件將作為jQuery的一個插件使用,注意lhgdialog.min.js要寫到jQuery庫文件的下面喲。
<script type="text/javascript" src="jQuery-1.7.1.min.js"></script>
<script type="text/javascript" src="lhgdialog.min.js"></script>
組件提供全局默認配置參數讀/寫接口,如果您想修改組件的全局默認配置,按照以下方法設置即可(可選):
(function(config){
config['extendDrag'] = true; // 注意,此配置參數只能在這里使用全局配置,在調用窗口的傳參數使用無效
config['lock'] = true;
config['fixed'] = true;
config['okVal'] = 'Ok';
config['cancelVal'] = 'Cancel';
// [more..]
})($.dialog.setting);
// 如果只設置一個或少量全局配置也可這樣:
$.dialog.setting.extendDrag = true;
// 獲取一個全局配置參數值(獲取lhgDialog組件絕對路徑):
var path = $.dialog.setting.path;
快速入門
4.2.0+版本開始去掉了傳統傳參數的方法
使用字面量傳參
$.dialog(options)
var dialog = $.dialog({title: '歡迎',content: '歡迎使用lhgdialog對話框組件!',icon: 'succeed',ok: function(){
this.title('警告').content('請注意lhgdialog兩秒后將關閉!').lock().time(2);
return false;
}
});
窗口lhgdialog.min.js文件的url參數
參數形式為:<script type="text/javascript" src="lhgdialog.min.js?self=true&skin=chrome"></script>
-
self:指定彈出窗口的頁面
類型:String
默認:'false'
說明:此參數只用在框架頁面中,如果不寫此參數或值為false時則窗口跨框架彈出在框架最頂層頁面,如果值為true則不跨框架,而在當前面頁彈出。 -
skin:多皮膚共享CSS文件名
類型:String
默認:'default'
說明:不寫此參數則值為default。如果你想在同一頁面使用不同皮膚的窗口,此處的值就為多皮膚共存的CSS的文件名
url參數不需要設定的就可以不寫,不寫時就使用默認值。
初始化參數列表
內容相關
-
title:窗口的標題文本
類型:String|Boolean
默認:'視窗'
說明:窗口標題的文件字符,如果值為false時就會隱藏標題欄 -
content:窗口中加載的內容
類型:String
默認:'loading...'
說明:1.如果想加載單獨的頁面,只要在字符前加'url:'字符即可,如:content:'url:content.html'
2.如果沒有設定content的值則會有loading的動畫
按鈕相關
-
ok:確定按鈕回調函數
類型:Function|Boolean
默認:null
說明:函數如果返回false將阻止對話框關閉;函數this指針指向內部api;如果傳入true表示只顯示有關閉功能的按鈕 -
cancel:取消按鈕回調函數
類型:Function|Boolean
默認:null
說明:1.函數如果返回false將阻止對話框關閉;函數this指針指向內部api;
2.如果傳入true表示只顯示有關閉功能的按鈕,標題欄的關閉按鈕其實就是取消按鈕,點擊同樣觸發cancel事件
3.如果值為false時則隱藏標題欄右邊的關閉按鈕 -
okVal:確定按鈕文字
類型:String
默認:確定 -
cancelVal:取消按鈕文字
類型:String
默認:取消 -
min:是否顯示最小化按鈕
類型:Boolean
默認:true -
max:是否顯示最大化按鈕
類型:Boolean
默認:true -
button:自定義按鈕
類型:Array
默認:null
說明:
配置參數成員:
name —— 按鈕名稱
callback —— 按下后執行的函數
focus —— 是否聚焦點
disabled —— 是否標記按鈕為不可用狀態(后續可使用擴展方法讓其恢復可用狀態)
示例:
參數如:[{name: '登錄', callback: function () {}}, {name: '取消'}] 。注意點擊按鈕默認會觸發按鈕關閉動作,需要阻止觸發關閉請讓回調函數返回false
尺寸相關
-
width:指定窗口的寬度
類型:Number|String
默認:'auto'
說明:設置窗口的寬度,可以帶單位。一般不需要設置此,對話框框架會自己適應內容 -
height:指定窗口的高度
類型:Number|String
默認:'auto'
說明:設置窗口的高度,可以帶單位。
位置相關
-
fixed:開啟靜止定位
類型:Boolean
默認:false
說明:靜止定位是css2.1的一個屬性,它靜止在瀏覽器某個地方不動,也不受滾動條拖動影響 -
left:相對於可視區域的X軸的坐標
類型:Number|String
默認:'50%'
說明:可以使用'0%' ~ '100%'作為相對坐標,如果瀏覽器窗口大小被改變其也會進行相應的調整 -
top:相對於可視區域的Y軸的坐標
類型:Number|String
默認:'50%'
說明:可以使用'0%' ~ '100%'作為相對坐標,如果瀏覽器窗口大小被改變其也會進行相應的調整
視覺相關
-
lock:開啟鎖屏
類型:Boolean
默認:false
說明:中斷用戶對話框之外的交互,用於顯示非常重要的操作/消息,所以不建議頻繁使用它,它會讓操作變得繁瑣 -
icon:定義消息圖標
類型:String
默認:null
說明:可定義“skins/icons/”目錄下的圖標名作為參數名(一定要包含后綴名) -
padding:內容與邊界填充邊距(即css padding)
類型:String
默認:'15px 10px'
說明:如果內容頁為iframe方式加載的則在css里需要設置為0,要不在IE6中易出問題 -
skin:多皮膚共存時指定的皮膚樣式
類型:String
默認:''
說明:指定窗口要使用的皮膚在加載的多皮膚共存的CSS文件中的相應主類名
交互相關
-
focus:彈出窗口后是否自動獲取焦點(4.2.0新增)
類型:Boolean
默認:true -
time:設置對話框顯示時間
類型:Number
默認:null
說明:以秒為單位 -
resize:是否允許用戶調節尺寸
類型:Boolean
默認:true -
drag:是否允許用戶拖動位置
類型:Boolean
默認:true -
esc:是否允許用戶按Esc鍵關閉對話框
類型:Boolean
默認:true
說明:只有窗口獲得焦點后才能使用此功能 -
cache:是否緩存iframe方式加載的窗口內容頁
類型:Boolean
默認:true
說明:只有使用iframe方式加載的單獨頁面的內容時此參數才有效 -
extendDrag:是否開啟增強拖拽體驗
類型:Boolean
默認:true
說明:1.此屬性為全局性設置,不能在窗口調用的參數里設置,只能使用lhgdialog.setting.extendDrag來設置
2.防止鼠標落入iframe導致不流暢,對超大對話框拖動優化
高級相關
-
data:數據傳輸入參數(4.2.0新增)
類型:anyone
默認:null
說明:此參數的值可以為任何類型的數據,比如常量,對象,數組,函數等等... -
id:設定對話框唯一標識
類型:String|Number
默認:null
說明:1.防止重復彈出
2.定義id后可以使用this.get(youID)和lhgdialog.list[youID]獲取擴展方法 -
zIndex:重置全局zIndex初始值
類型:Number
默認:1976
說明:用來改變對話框疊加高度,請注意這是一個會影響到全局的配置,后續出現的對話框疊加高度將重新按此累加。 -
init:對話框彈出后執行的函數
類型:Function
默認:null
說明:如果是以iframe方式加載的內容頁此函數會在內容頁加載完成后執行 -
close:對話框關閉前執行的函數
類型:Function
默認:null
說明:函數如果返回false將阻止對話框關閉。請注意這不是關閉按鈕的回調函數,無論何種方式關閉對話框,close都將執行。 -
parent:打開子窗口的父窗口對象
類型:Object
默認:null
說明:此參數只用在打開多層窗口都使用遮罩層時才會用到此參數,注意多層窗口鎖屏時一定要加此參數
擴展方法
窗口實例對象內部方法
-
close():關閉對話框
參數:無
說明:在需要關閉窗口時可調用此方法 -
reload(win,url):刷新或跳轉指定的頁面
參數1:指定的要刷新或跳轉的頁面的window對象
參數2:要跳轉到的頁面地址 -
show():顯示對話框
參數:無
-
hide():隱藏對話框
參數:無
-
title(value):寫入標題
參數1:標題的文本
說明:無參數則返回創建的窗口對象實例 -
content(value,add,isFrm):向窗口中寫入內容
參數1:value -- 窗口中的內容
參數2:add -- 是否窗口中為后增加的內容
參數3:isFrm -- 是否使用iframe方式加載窗口
說明:如果參數1的前3個字符為'url:'則說明您使用iframe方式加載單獨的內容頁,這時第三個參數要為true,無參數則返回創建的窗口對象實例 -
button(arguments):插入一個自定義按鈕
參數1:name -- 按鈕名稱
參數2:callback -- 按下后執行的函數
參數3:focus -- 是否聚焦點
參數4:disabled -- 是否標記按鈕為不可用狀態(后續可使用擴展方法讓其恢復可用狀態)
說明:此參數為多個對象
示例:
button({
name: '登錄',
focus: true,
callback: function(){}
},{
name: '取消'
}); -
position(left,top):重新定位對話框
參數1:X軸的坐標
參數2:Y軸的坐標
說明:參數可以為數字或帶單位的字符如:'200px'或使用'0%' ~ '100%'作為相對坐標 -
size(width,height):重新設定對話框大小
參數1:窗口的寬度
參數2:窗口的高度
說明:參數可以為數字或帶單位的字符如:200或'200px' -
max():最大化窗口
參數:無
-
min():最小化窗口
參數:無
-
lock():鎖屏
參數:無
-
unlock():解鎖
參數:無
-
time(val,callback):定時關閉(單位秒)
參數1:數值,以秒為單位
參數2:回調函數
說明:參數2為窗口關閉前執行的函數 -
focus() :自動設置窗口中焦點元素
參數:無
-
zindex() :置頂窗口
參數:無
-
get(id,object) :根據指定id獲取相應的對象
參數1:窗口的id
參數2:是否返回的是窗口實例對象
說明:參數2的值只有為數字1時才返回指定id的窗口的實例對象 -
api:內容頁中調用窗口實例對象接口
說明:此對象屬性是附加在iframe元素的一個屬性,在iframe方式加載的內容頁中通過調用此函數來獲取窗口的實例對象,示例:var api = frameElement.api; 注:此句代碼是加在iframe方式加載的內容頁中的,一定要注意
-
opener:加載窗口組件頁面的window對象
說明:此屬性主要用在iframe方式加載的內容頁中,示例:var api = frameElement.api, W = api.opener; 此時的W即為加載窗口組件頁面的window對象
-
iframe:iframe方式加載內容的iframe對象
說明:此屬性主要用於在窗口組件調用頁面操作窗口中的iframe對象
-
content:iframe方式加載內容頁的window對象
說明:此屬性主要用於在窗口組件調用頁面操作窗口中的window對象,示例:var dg = $.dialog({'url:content.html',init:function(){ if( this.content.document.body ) alert('窗口內容頁加載完成'); });
窗口外部方法
-
$.dialog.focus:獲取焦點的窗口實例對象
說明:可以使用此屬性獲取兒得焦點的窗口的對象,示例:var dg = $.dialog.focus; 此時的dg就是當前焦點窗口的對象實例
-
$.dialog.list:所有窗口對象實例的集合
說明:通過此屬性可獲取所有打開的窗口對象,示例:關閉頁面所有對話框
var list = $.dialog.list;
for( var i in list ){
list[i].close();
}
擴展的一些提示性的窗口
-
$.dialog.alert(content,callback,parent):警告消息
參數1:內容
參數2:窗口關閉時執行的回調函數
參數3:警告窗口的父窗口對象 -
$.dialog.confirm(content,yes,no,parent):確認
參數1:內容
參數2:確定按鈕回調函數
參數3:取消按鈕回調函數
參數4:確認窗口的父窗口對象 -
$.dialog.prompt(content,yes,value,parent):提問
參數1:內容
參數2:確定按鈕回調函數
參數3:文本框默認值
參數4:提問窗口的父窗口對象 -
$.dialog.tips(content,time,icon,callback):短暫提示
參數1:內容
參數2:顯示時間
參數3:提示圖標
參數4:提示關閉時執行的函數