layui.layer彈出層(子頁面)改變父頁面內(nèi)容(訪問元素和函數(shù))
當(dāng)前頁面(父框架或父頁面)使用layer以iframe層的方式彈出新的窗口(子框架或子頁面)時,如何在子頁面中訪問父頁面的元素和函數(shù),從而改變父元素的頁面顯示,給用戶合理舒適的體驗。
一、layer.open() 方法重要參數(shù)使用回顧
content - 內(nèi)容
content可傳入的值是靈活多變的,不僅可以傳入普通的html內(nèi)容,還可以指定DOM,更可以隨著type的不同而不同。
/!* 如果是頁面層 */ layer.open({ type: 1, content: '傳入任意的文本或html' //這里content是一個普通的String }); layer.open({ type: 1, content: $('#id') //這里content是一個DOM,注意:最好該元素要存放在body最外層,否則可能被其它的相對元素所影響 }); //Ajax獲取 $.post('url', {}, function(str){ layer.open({ type: 1, content: str //注意,如果str是object,那么需要字符拼接。 }); }); /!* 如果是iframe層 */ layer.open({ type: 2, content: 'http://sentsin.com' //這里content是一個URL,如果你不想讓iframe出現(xiàn)滾動條,你還可以content: ['http://sentsin.com', 'no'] }); /!* 如果是用layer.open執(zhí)行tips層 */ layer.open({ type: 4, content: ['內(nèi)容', '#id'] //數(shù)組第二項即吸附元素選擇器或者DOM });
success - 層彈出后的成功回調(diào)方法
當(dāng)你需要在層創(chuàng)建完畢時即執(zhí)行一些語句,可以通過該回調(diào)。success會攜帶兩個參數(shù),分別是當(dāng)前層DOM當(dāng)前層索引。
layer.open({ content: '測試回調(diào)', success: function(layero, index){ console.log(layero, index); } });
yes - 確定按鈕回調(diào)方法
該回調(diào)攜帶兩個參數(shù),分別為當(dāng)前層索引、當(dāng)前層DOM對象。
layer.open({ content: '測試回調(diào)', yes: function(index, layero){ //do something layer.close(index); //如果設(shè)定了yes回調(diào),需進(jìn)行手工關(guān)閉 } });
二、js操作父頁面常用代碼
// 1、訪問父頁面元素值 parent.$("#id").val(); // 2、訪問父頁面方法 parent.getMethodValue();//訪問父頁面方法 // 3、如何關(guān)閉彈出的子頁面窗口 var index = parent.layer.getFrameIndex(window.name); //獲取窗口索引 parent.layer.close(index);//關(guān)閉彈出的子頁面窗口 // 4、如何從子頁面執(zhí)行刷新父頁面操作 parent.location.reload();
三、子頁面改變父頁面內(nèi)容代碼實例
父頁面
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>父頁面</title> <link rel="stylesheet" type="text/css" href="layer.css" rel="external nofollow" rel="external nofollow" > <script type="text/javascript" src="jquery.min.js"></script> <script type="text/javascript" src="layer.js"></script> </head> <body> <p id="parentIframe">實例</p> <button id="ne1">查看變量</button> <button id="ne">打開iframe</button> <script type="text/javascript"> var rel="原始變量"; $(function(){ $('#ne').on('click', function(){ layer.open({ type: 2, area: ['500px', '300px'], maxmin: true, content: 'test.html' }); }); $('#ne1').on('click', function(){ alert(rel); }); }); function setRel(rel){ this.rel=rel; } function getRel(){ return rel; } </script> </body> </html>
子頁面
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>子頁面</title> <link rel="stylesheet" type="text/css" href="layer.css" rel="external nofollow" rel="external nofollow" > <script type="text/javascript" src="jquery.min.js"></script> <script type="text/javascript" src="layer.js"></script> </head> <body> <p><input id="name"><button id="new1">改變父類元素</button></p> <button id="new">關(guān)閉iframe</button> <script> $(function(){ var str=window.location.href; $("#name").val(str.split('?')[1]); $('#new').on('click', function(){ var index = parent.layer.getFrameIndex(window.name); parent.setRel("子類傳值"); parent.layer.close(index); }); $('#new1').on('click', function(){ parent.$('#parentIframe').text($("#name").val()); }); }); </script> </body> </html>
注意:
1、父頁面中的‘test.html’改成自己的子頁面路徑地址
2、官方下載layer.js
3、jquery庫的引用必須在layer.js之前
到此這篇關(guān)于layui.layer彈出層(子頁面)改變父頁面內(nèi)容(訪問元素和函數(shù))的文章就介紹到這了,更多相關(guān)layer子頁面訪問父頁面的元素和函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Typescript?extends?關(guān)鍵字繼承類型約束及條件類型判斷實現(xiàn)示例解析
這篇文章主要介紹了Typescript?extends?關(guān)鍵字繼承類型約束及條件類型判斷實現(xiàn)示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08Spartacus中navigation?item?reducer實現(xiàn)解析
這篇文章主要為大家介紹了Spartacus中navigation?item?reducer實現(xiàn)解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07TypeScript數(shù)據(jù)結(jié)構(gòu)之隊列結(jié)構(gòu)Queue教程示例
這篇文章主要為大家介紹了TypeScript數(shù)據(jù)結(jié)構(gòu)之隊列結(jié)構(gòu)Queue教程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02typescript難學(xué)嗎?前端有必要學(xué)?該怎么學(xué)typescript
TypeScript代碼與?JavaScript?代碼有非常高的兼容性,無門檻,你把?JS?代碼改為?TS?就可以運行。TypeScript?應(yīng)該不會脫離?JavaScript?成為獨立的語言。學(xué)習(xí)?TypeScript?應(yīng)該主要指的是學(xué)習(xí)它的類型系統(tǒng)。2022-12-12PureScript與JavaScript中equality設(shè)計的使用對比分析
這篇文章主要為大家介紹了PureScript中的equality與JavaScript中的equality設(shè)計對比分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11TypeScript類型any never void和unknown使用場景區(qū)別
這篇文章主要為大家介紹了TypeScript類型any never void和unknown使用場景區(qū)別,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-10-10TypeScript使用strictnullcheck實戰(zhàn)解析
這篇文章主要為大家介紹了TypeScript使用strictnullcheck實戰(zhàn)解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08typescript快速上手的進(jìn)階類型與技術(shù)
本文講述了typescript開發(fā)的一些高級的類型與技術(shù),算是對于基礎(chǔ)知識點的補充,具體內(nèi)容包括:比如元組、枚舉類、接口、泛型相關(guān)概念等。雖說是進(jìn)階,但是內(nèi)容不算多也并不難理解。2022-12-12