layui框架中layer父子頁面交互的方法分析


本文實例講述了layui框架中layer父子頁面交互的方法。分享給大家供大家參考,具體如下:

layer是一款近年來備受青睞的web彈層組件,官網地址是:http://layer.layui.com/

可以從官網上下載最新版本。

還可點擊此處本站下載

當layer以iframe層的方式彈出新的窗口(子頁面),如何在子頁面中訪問父頁面的元素和函數。

1、訪問父頁面元素值

?
1
var parentId=parent.$( "#id" ).val(); //訪問父頁面元素值

2、訪問父頁面方法

?
1
var parentMethodValue=parent.getMethodValue(); //訪問父頁面方法

3、如何關閉彈出的子頁面窗口

?
1
2
var index = parent.layer.getFrameIndex(window.name); //獲取窗口索引
parent.layer.close(index); //關閉彈出的子頁面窗口

4、如何從子頁面執行刷新父頁面操作

?
1
parent.location.reload(); // 父頁面刷新

附:layer彈出多個iframe找到父頁面的方法

父頁面:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
function aa(){
     var index = parent.layer.getFrameIndex(window.name);
     var iframeName = 'layui-layer-iframe' +index;
     openDialog1( '選擇XXX' , '${ctx}/*****,' 800px ', ' 500px ',iframeName);
}
function openDialog1(title,url,width,height,target){
     top.layer.open({
       type: 2,
       area: [width, height],
       title: title,
       maxmin: true, //開啟最大化最小化按鈕
       content: url ,
       btn: [' 確定 ', ' 關閉 '],
       yes: function(index, layero){
          var body = top.layer.getChildFrame(' body ', index);
          var iframeWin = layero.find(' iframe ')[0]; //得到iframe頁的窗口對象,執行iframe頁的方法:iframeWin.method();
          var inputForm = body.find(' #inputForm');
          var top_iframe;
          if (target){
            top_iframe = target; //如果指定了iframe,則在改frame中跳轉
          } else {
            top_iframe = top.getActiveTab().attr( "name" ); //獲取當前active的tab的iframe
          }
          inputForm.attr( "target" ,top_iframe); //表單提交成功后,從服務器返回的url在當前tab中展示
          if (iframeWin.contentWindow.doSubmit(top_iframe) ){
            top.layer.close(index); //關閉對話框。
            top.window[iframeName].frames.location.reload(); //刷新父親
          }
      },
      cancel: function (index){
       }
   });
}
//子頁面回調方法
function addRecord(name,chainName){
   alert(name);
}

子頁面

?
1
2
3
4
5
6
7
8
9
10
11
12
13
function doSubmit(iframeName) {
     var sel=$( "tbody tr td input.i-checks:checked" );
     var size = sel.size();
     if (size==0){
       top.layer.alert( '請至少選擇一條數據!' , {icon: 0, title: '警告' });
       return false ;
     } else {
       for ( var i=0;i<size;i++){
         top.window[iframeName].addRecord(sel[i].name,sel[i].value);
       }
       return true ;
     }
}

另:layui完整源碼可點擊此處本站下載


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM