layer.open屬性詳解及l(fā)ayer.open彈出框使用post方法舉例
一、常用屬性詳解:
layer.open({ // 基本層類型:0(信息框,默認)1(頁面層)2(iframe層,也就是解析content)3(加載層)4(tips層) type: 1, title: "標題", // 當type: 2時就是url content: "內容/url", // 如果不想要界面滾動條可以這樣寫 //content: ["內容/url",'no'] // 寬高:如果是100%就是滿屏 area: ['733px', '450px'], // 坐標:auto(默認坐標,即垂直水平居中),具體當文檔:https://www.layui.com/doc/modules/layer.html#offset offset: 'auto', // 按鈕:按鈕1的回調是yes(也可以是btn1),而從按鈕2開始,則回調為btn2: function(){},以此類推 btn: ['按鈕1', '按鈕2'], // 關閉按鈕:layer提供了兩種風格的關閉按鈕,可通過配置1和2來展示,如果不顯示,則0 closeBtn: 1, // 遮罩:默認:0.3透明度的黑色背景('#000') shade: 0.3, // 是否點擊遮罩關閉:默認:false shadeClose: false, // 自動關閉所需毫秒:默認:0不會自動關閉 time: 0, // 最大最小化:默認:false maxmin: false, // 固定:默認:true fixed: true, // 是否允許拉伸:默認:true resize: true, // 層疊順序:默認:19891014,一般用于解決和其它組件的層疊沖突 zIndex: 19891014, // 層彈出后的成功回調方法:layero前層DOM,index當前層索引 success: function(layero, index){ }, // 第一個按鈕事件,也可以叫btn1 yes: function (index, layero) { }, btn2: function (index, layero) { layer.close(index); }, // 右上角關閉按鈕觸發(fā)的回調:默認會自動觸發(fā)關閉。如果不想關閉,return false即可 cancel: function(index, layero){ if(layer.confirm('確定要關閉么')){ //只有當點擊confirm框的確定時,該層才會關閉 layer.close(index); } return false; }, // 層銷毀后觸發(fā)的回調:無論是確認還是取消,只要層被銷毀了,end都會執(zhí)行,不攜帶任何參數。 end: function(){ }, // 最大化后觸發(fā)的回調:攜帶一個參數,即當前層DOM full: function(layero){ }, // 最小化后觸發(fā)的回調:攜帶一個參數,即當前層DOM min: function(layero){ }, // 還原后觸發(fā)的回調:攜帶一個參數,即當前層DOM restore: function(layero){ }, });
例子:
layer.open({ type: 1, title: "標題", content: "內容/url", area: ['733px', '450px'], offset: 'auto', btn: ['按鈕1', '按鈕2'], closeBtn: 1, shade: 0.3, shadeClose: false, time: 0, maxmin: false, fixed: true, resize: true zIndex: 19891014, success: function(layero, index){ }, yes: function (index, layero) { }, btn2: function (index, layero) { layer.close(index); }, cancel: function(index, layero){ layer.close(index); } return false; }, end: function(){ }, full: function(layero){ }, min: function(layero){ }, restore: function(layero){ }, });
二:layer.open GET方式說明
如下段代碼所示,是最常見的layer.open使用方式。這里有幾點需要說明:
type 基本層類型,layer提供了5種層類型??蓚魅氲闹涤校?(信息框,默認)、1(頁面層)、2(iframe層)、3(加載層)、4(tips層)。
layer.open其底層采用的就是get請求方式,因此使用layer.open的彈出層頁面?zhèn)鲄⒅荒苁瞧唇釉趗rl后面。
對于type=2的彈出框,可以使用圖示中的方法調用子頁面彈出框的doSubmit() 方法,并獲取該方法的返回值。
layer.open({ type: 2, area: ["900px", "520px"], title: "子頁面-彈出框", content: "${basePath}/aaa/bbb/get?id=1", btn: ['確定', '關閉'], yes: function (index, layero) { // 調用子頁面(彈出框)的doSubmit方法并獲取其返回值 var iframeWin = layero.find('iframe')[0]; var data = iframeWin.contentWindow.doSubmit(); }, cancel: function (layer_window) { // 關閉彈出框頁面 layer.close(layer_window); } });
三、layer.open POST方式介紹
由于layer.open其底層就是get請求方式,因此,如果需要使用post請求的話,必須要引入其他方式,這里采用ajax。
思路:用ajax通過post方式傳參請求到頁面的html,然后通過layer.open方法展示出來。
$.ajax({ type: "POST", url: "${basePath}/aaa/bbb/post", data: {"id":1, "type":2, "code":3}, success: function(res) { var html = res.data; layer.open({ type: 1, area: ["900px", "520px"], title: "子頁面-彈出層", content: html, btn: ['確定', '關閉'], yes: function (index, layero) { // 調用子頁面(彈出框)的doSubmit方法并獲取其返回值 var context = layero.find('page').context; var data = context.defaultView.doSubmit(); }, cancel: function (layer_window) { // 關閉彈出框頁面 layer.close(layer_window); } }); } });
如上段代碼所示,是layer.open post請求頁面的方放。這里有幾點需要說明:
type必須為1,因為這里layer.open的content是直接給出HMTL代碼的。
調用子頁面方法的方式發(fā)生了改變,如上實例。
附:iframe層(type:2) :彈出層直接調用其他地方的頁面
layer.open({ type: 2, //Layer提供了5種層類型??蓚魅氲闹涤校?(信息框,默認)1(頁面層)2(iframe層)3(加載層)4(tips層), shade:0.1, //遮罩層透明度 area:['850px','500px'], //彈出層寬高 title:'材料庫',//彈出層標題 content: 'xx/xx.jsp' //這里content是一個URL,如果你不想讓iframe出現滾動條,你還可以content: ['http://sentsin.com', 'no'] });
總結
到此這篇關于layer.open屬性詳解及l(fā)ayer.open彈出框使用post方法的文章就介紹到這了,更多相關layer.open屬性彈出框使用內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
js前端加密庫Crypto-js進行MD5/SHA256/BASE64/AES加解密的方法與示例
js加密解密可以使用crypto-js它可以進行MD5、SHA-1、SHA-256、Base64、AES、DES、等算法和加密,這是一個對稱加密的庫,可以使用 AES、DES、但沒有rsa等非對稱加密的方法2023-12-12使用TypeScript?V8來改進您的JavaScript代碼
TypeScript?V8是一個強大的JavaScript類型系統(tǒng),它可以幫助你發(fā)現JavaScript代碼中的錯誤和潛在問題,并在編譯時捕獲它們,以便您可以解決它們,TypeScript?V8為JavaScript提供一系列的類型注釋,包括自定義類型和其他高級功能2023-08-08