ymPrompt.js訊息提示元件
轉載:https://www.cnblogs.com/linzheng/archive/2010/11/15/1878058.html
使用說明:
1、在頁面中引入ymPrompt.js。如:<script type="text/javascript" src="ymPrompt.js"></script>
2、在頁面中引入對應的面板檔案的CSS,如:<link rel="stylesheet" type="text/css" href="skin/qq/ymPrompt.css" />
3、自定義元件的預設配置資訊(此步驟可選,該方法可以在任意時間呼叫)
頁面的js中通過ymPrompt.setDefaultCfg(cfg)方法修改元件部分或全部的預設屬性。
如:ymPrompt.setDefaultCfg({maskAlpha:0.2,maskAlphaColor:'#00f'})
元件的預設配置(對於沒有設定的項將採用該配置項的預設值):
{
titleBar:true, //顯示標題欄
fixPosition:true, //隨滾動條浮動
dragOut:false, //不允許拖出頁面
autoClose:true, //點選按鈕後自動關閉頁面
maskAlphaColor:'#000', //遮罩透明色
maskAlpha:0.1, //遮罩透明度
winAlpha:0.8, //拖動窗體時 窗體的透明度,預設為0.8
title: '標題', //訊息框標題
message: '內容', //訊息框按鈕
width: 300, //寬
height: 185, //高
iframe:false,
btn:null,
icoCls:'',
handler: function(){} //回撥事件
showMask: true, //是否顯示遮罩
winPos: 'c', //彈出視窗預設位置
closeBtn:true, //是否顯示關閉按鈕
//按鈕文字,可通過自定義這些屬性實現本地化
closeTxt: '關閉',
okTxt:' 確 定 ',
cancelTxt:' 取 消 '
}
4、根據您的需要呼叫相應的訊息函式(兩種引數傳入方式):
ymPrompt.alert(引數) //訊息提示型別
ymPrompt.succeedInfo(引數) //成功資訊型別
ymPrompt.errorInfo(引數) //錯誤資訊型別
ymPrompt.confirmInfo(引數) //詢問訊息型別
ymPrompt.win(引數) //自定義視窗型別
引數傳入方式包含兩種:
第一種即傳統的引數傳入,按照順序傳入相應的引數值即可(一定要按照順序),對於不需要設定的值請傳入null。如ymPrompt.alert('內容',null,null,'標題')
引數順序:message,width,height,title,handler,maskAlphaColor,maskAlpha,
iframe,icoCls,btn,autoClose,fixPosition,dragOut,titleBar,showMask,winPos,winAlpha
(推薦)第二種即JSON的傳入方式,需要指定欄位名,沒有順序,根據需要設定相關屬性。如ymPrompt.alert({title:'標題',message:'內容'})
五個方法的引數意義完全相同(所有引數均為可選,不傳入則使用預設引數值),具體含義如下:
message:訊息元件要顯示的內容,預設為“內容”。
width:訊息框的寬度,預設為300。
height:訊息框的高度,預設為185。
title:訊息元件標題,預設為“標題”
handler:回撥函式。當確定/取消/關閉按鈕被點選時會觸發該函式並傳入點選的按鈕標識。如ok代表確定,cancel代表取消,close代表關閉
maskAlphaColor:遮罩的顏色,預設為黑色。
maskAlpha:遮罩的透明度,預設為0.1。
fixPosition:設定是否彈出框隨滾動條一起浮動,保持在螢幕的固定位置,預設為true
dragOut:設定是否允許拖出螢幕範圍,預設為false。
autoClose:設定使用者點選視窗中按鈕後自動關閉視窗,預設為true(設定為false後程序中可以通過呼叫close方法關閉)。
titleBar:是否顯示標題欄,預設顯示。注意,如果沒有標題欄需要自己在程式中控制關閉。
showMask:是否顯示遮罩層,預設為true
winPos:彈出視窗的位置,支援8種內建位置(c,l,t,r,b,lt,rt,lb,rb)及自定義視窗座標,預設為c。
各引數意義:c:頁面中間,l:頁面左側,t:頁面頂部,r:頁面右側,b:頁面頂部,lt:左上角,rt:右上角,lb:左下角,rb:右下角
winAlpha:彈出窗體拖動時的透明度,預設為0.8
//以下三個引數主要用於win方法(當然你也可以通過設定這些覆蓋前面四個訊息型別的預設屬性)。
iframe:是否使用iframe方法載入內容,該屬性如果為true或者object,元件則嘗試將message內容作為url進行載入(如果屬性值為一個object,則將object的內容新增為iframe的屬性,如iframe:{id:'myId',name:'myName',src:'http://www.baidu.com'}則iframe的id為myId,name為myName,src為http://www.baidu.com)。預設為false。
icoCls:圖示型別。傳入的內容為className,具體寫法可以參考ymprompt.css中對圖示的定義方式。預設為空。
btn:按鈕定義。傳入的是陣列形式。每個按鈕的格式為['按鈕文字','按鈕標識'],
如[['確定','ok'],['取消','cancel'],['關閉','close']]等。
注意單個按鈕應該是這樣的:[['確定','ok']]
closeBtn:是否顯示關閉按鈕,預設為true(顯示)。
//以下引數可用於對元件語言本地化,如用於英文等系統中
okTxt:確定按鈕的文字描述,預設為“確定”
cancelTxt:取消按鈕的文字描述,預設為“取消”
closeTxt:關閉按鈕的文字描述(滑鼠放在關閉按鈕上時顯示),預設為“關閉”
5、操作介面:
屬性:
version:當前版本號 如:alert(ymPrompt.version)
pubDate:當前版本的釋出日期 如:alert(ymPrompt.pubDate);
cfg:元件的當前的預設配置
方法:
setDefaultCfg(cfg):設定元件的預設屬性,設定後的所有彈出均預設採用cfg中的設定。
如:ymPrompt.setDefaultCfg({maskAlpha:0.2,maskAlphaColor:'#00f'}); //設定遮罩層顏色為藍色,透明度0.2
getPage():在iframe視窗模式下,獲取到iframe的dom物件。
如:alert(ymPrompt.getPage().contentWindow.document.body.outerHTML); //獲取iframe頁面的html內容
resizeWin(w,h):通過程式動態修改視窗的大小。引數:w:寬度,h:高度
如:ymPrompt.resizeWin(400,300); //修改彈出框寬度為400px,高度為300px
doHandler(sign,autoClose):模擬觸發某個按鈕的點選事件。引數sign:傳給回撥函式的標識,autoClose:是否自動關閉視窗(預設採用全域性配置)
如:ymPrompt.doHandler('ok',false); //觸發確定按鈕的點選事件,並且執行完回撥函式後不關閉視窗
getButtons():獲取當前彈出視窗的所有按鈕物件,返回結果是一個物件集合(陣列)。
如:var btnID=ymPrompt.getButtons()[0].id; //獲取第一個按鈕的id
close():關閉當前彈出的視窗 如:ymPrompt.close()
6、其他說明:如果覺得“物件.方法”的呼叫方式比較麻煩,可以採用如下方式簡化呼叫:
在呼叫之前設定var Alert=ymPrompt.alert。之後就可以使用Alert()的方式進行
使用說明:
1、在頁面中引入ymPrompt.js。如:<script type="text/javascript" src="ymPrompt.js"></script>
2、在頁面中引入對應的面板檔案的CSS,如:<link rel="stylesheet" type="text/css" href="skin/qq/ymPrompt.css" />
3、自定義元件的預設配置資訊(此步驟可選,該方法可以在任意時間呼叫)
頁面的js中通過ymPrompt.setDefaultCfg(cfg)方法修改元件部分或全部的預設屬性。
如:ymPrompt.setDefaultCfg({maskAlpha:0.2,maskAlphaColor:'#00f'})
元件的預設配置(對於沒有設定的項將採用該配置項的預設值):
{
titleBar:true, //顯示標題欄
fixPosition:true, //隨滾動條浮動
dragOut:false, //不允許拖出頁面
autoClose:true, //點選按鈕後自動關閉頁面
maskAlphaColor:'#000', //遮罩透明色
maskAlpha:0.1, //遮罩透明度
winAlpha:0.8, //拖動窗體時 窗體的透明度,預設為0.8
title: '標題', //訊息框標題
message: '內容', //訊息框按鈕
width: 300, //寬
height: 185, //高
iframe:false,
btn:null,
icoCls:'',
handler: function(){} //回撥事件
showMask: true, //是否顯示遮罩
winPos: 'c', //彈出視窗預設位置
closeBtn:true, //是否顯示關閉按鈕
//按鈕文字,可通過自定義這些屬性實現本地化
closeTxt: '關閉',
okTxt:' 確 定 ',
cancelTxt:' 取 消 '
}
4、根據您的需要呼叫相應的訊息函式(兩種引數傳入方式):
ymPrompt.alert(引數) //訊息提示型別
ymPrompt.succeedInfo(引數) //成功資訊型別
ymPrompt.errorInfo(引數) //錯誤資訊型別
ymPrompt.confirmInfo(引數) //詢問訊息型別
ymPrompt.win(引數) //自定義視窗型別
引數傳入方式包含兩種:
第一種即傳統的引數傳入,按照順序傳入相應的引數值即可(一定要按照順序),對於不需要設定的值請傳入null。如ymPrompt.alert('內容',null,null,'標題')
引數順序:message,width,height,title,handler,maskAlphaColor,maskAlpha,
iframe,icoCls,btn,autoClose,fixPosition,dragOut,titleBar,showMask,winPos,winAlpha
(推薦)第二種即JSON的傳入方式,需要指定欄位名,沒有順序,根據需要設定相關屬性。如ymPrompt.alert({title:'標題',message:'內容'})
五個方法的引數意義完全相同(所有引數均為可選,不傳入則使用預設引數值),具體含義如下:
message:訊息元件要顯示的內容,預設為“內容”。
width:訊息框的寬度,預設為300。
height:訊息框的高度,預設為185。
title:訊息元件標題,預設為“標題”
handler:回撥函式。當確定/取消/關閉按鈕被點選時會觸發該函式並傳入點選的按鈕標識。如ok代表確定,cancel代表取消,close代表關閉
maskAlphaColor:遮罩的顏色,預設為黑色。
maskAlpha:遮罩的透明度,預設為0.1。
fixPosition:設定是否彈出框隨滾動條一起浮動,保持在螢幕的固定位置,預設為true
dragOut:設定是否允許拖出螢幕範圍,預設為false。
autoClose:設定使用者點選視窗中按鈕後自動關閉視窗,預設為true(設定為false後程序中可以通過呼叫close方法關閉)。
titleBar:是否顯示標題欄,預設顯示。注意,如果沒有標題欄需要自己在程式中控制關閉。
showMask:是否顯示遮罩層,預設為true
winPos:彈出視窗的位置,支援8種內建位置(c,l,t,r,b,lt,rt,lb,rb)及自定義視窗座標,預設為c。
各引數意義:c:頁面中間,l:頁面左側,t:頁面頂部,r:頁面右側,b:頁面頂部,lt:左上角,rt:右上角,lb:左下角,rb:右下角
winAlpha:彈出窗體拖動時的透明度,預設為0.8
//以下三個引數主要用於win方法(當然你也可以通過設定這些覆蓋前面四個訊息型別的預設屬性)。
iframe:是否使用iframe方法載入內容,該屬性如果為true或者object,元件則嘗試將message內容作為url進行載入(如果屬性值為一個object,則將object的內容新增為iframe的屬性,如iframe:{id:'myId',name:'myName',src:'http://www.baidu.com'}則iframe的id為myId,name為myName,src為http://www.baidu.com)。預設為false。
icoCls:圖示型別。傳入的內容為className,具體寫法可以參考ymprompt.css中對圖示的定義方式。預設為空。
btn:按鈕定義。傳入的是陣列形式。每個按鈕的格式為['按鈕文字','按鈕標識'],
如[['確定','ok'],['取消','cancel'],['關閉','close']]等。
注意單個按鈕應該是這樣的:[['確定','ok']]
closeBtn:是否顯示關閉按鈕,預設為true(顯示)。
//以下引數可用於對元件語言本地化,如用於英文等系統中
okTxt:確定按鈕的文字描述,預設為“確定”
cancelTxt:取消按鈕的文字描述,預設為“取消”
closeTxt:關閉按鈕的文字描述(滑鼠放在關閉按鈕上時顯示),預設為“關閉”
5、操作介面:
屬性:
version:當前版本號 如:alert(ymPrompt.version)
pubDate:當前版本的釋出日期 如:alert(ymPrompt.pubDate);
cfg:元件的當前的預設配置
方法:
setDefaultCfg(cfg):設定元件的預設屬性,設定後的所有彈出均預設採用cfg中的設定。
如:ymPrompt.setDefaultCfg({maskAlpha:0.2,maskAlphaColor:'#00f'}); //設定遮罩層顏色為藍色,透明度0.2
getPage():在iframe視窗模式下,獲取到iframe的dom物件。
如:alert(ymPrompt.getPage().contentWindow.document.body.outerHTML); //獲取iframe頁面的html內容
resizeWin(w,h):通過程式動態修改視窗的大小。引數:w:寬度,h:高度
如:ymPrompt.resizeWin(400,300); //修改彈出框寬度為400px,高度為300px
doHandler(sign,autoClose):模擬觸發某個按鈕的點選事件。引數sign:傳給回撥函式的標識,autoClose:是否自動關閉視窗(預設採用全域性配置)
如:ymPrompt.doHandler('ok',false); //觸發確定按鈕的點選事件,並且執行完回撥函式後不關閉視窗
getButtons():獲取當前彈出視窗的所有按鈕物件,返回結果是一個物件集合(陣列)。
如:var btnID=ymPrompt.getButtons()[0].id; //獲取第一個按鈕的id
close():關閉當前彈出的視窗 如:ymPrompt.close()
6、其他說明:如果覺得“物件.方法”的呼叫方式比較麻煩,可以採用如下方式簡化呼叫:
在呼叫之前設定var Alert=ymPrompt.alert。之後就可以使用Alert()的方式進行