iframe多窗口
Window 對象?
瀏覽器會在其打開一個 HTML 文檔時創建一個對應的 window 對象。但是,如果一個文檔定義了一個或多個框架(即,包含一個或多個 frame 或 iframe 標簽),瀏覽器就會為原始文檔創建一個 window 對象,再為每個框架創建額外的 window 對象。這些額外的對象是原始窗口的 子窗口,可能被原始窗口中發生的事件所影響。例如,關閉原始窗口將導致關閉全部子窗口。如果想要創建新窗口(以及對應的 window 對象),可以使用像 open, showModalDialog 和 showModelessDialog 這樣的方法。
contentWindow 屬性
contentWindow屬性是指指定的frame或者iframe所在的window對象
var ifr = document.getElementById("iframe");var contentWindow = ifr.contentWindow.document.getElementById("XXXXX");
contentWindow.method(); 在iframe頁面操作父頁面DoM元素(即嵌套這個iframe的頁面)可以用:
window.parent.
window.top. (這里的TOP是獲取的頂層,即有多層嵌套iframe的時候使用)
=========================================================== 1 /** 2 * 人員選擇 3 * @param fieldName 字段名稱(同時也是回顯控件的ID) 4 * @param type 控件類型(1:單選, 2: 多選) 5 * */ 6 function userSelect(fieldName, type, callback) { 7 layer.open({ 8 type: 2 //此處以iframe舉例 9 , title: "選擇用戶" 10 , area: ['800px', ($(window).height())+'px'] 11 , shade: 0 12 , offset:'rb', 13 scrollbar: false, 14 shade:0.5, 15 shift: 2, 16 fixed:false, 17 resize:false, 18 scrollbar:true, 19 move:false 20 , maxmin: false 21 , content: 'appDataController.do?userSelect&type='+type //(url) 22 , zIndex: layer.zIndex //重點1 23 , success: function (layero) { 24 layer.setTop(layero); //重點2 25 } 26 , btn: ['確定'] 27 , yes: function(index){ 28 29 // 獲得iframe的窗口對象 30 var child = 'layui-layer-iframe'+index; 31 $child = $("#"+child)[0].contentWindow; 32 33 // 調用iframe的方法 34 var data = $child.getUser(); 35 callback(fieldName, data); 36 layer.close(index); 37 } 38 }); 39 }
另外一種layer,父子頁面交互
var child = 'layui-layer-iframe'+index;
$child = $("#"+child)[0].contentWindow;
var data = $child.submit();
還有一個
var iframeWin = window[layero.find('iframe')[0]['name']];
iframeWin.resetSelect();
轉載于:https://www.cnblogs.com/Eeexiang/p/8920774.html
總結
- 上一篇: 230:Borrowers
- 下一篇: Winform让扫描枪听话,防止在有焦点