父層:
jsp中:
//頁面上添加一個隱藏的輸入框待用于被子層設置value,從而將子層的數據傳遞到此頁面
<input type="hidden" id="getValue" name="getValue" value="" />
js代碼:
//設置function,當執行時,彈出子窗口并傳遞當前窗口名稱
//彈出子窗口(選擇商家) function choseMerchant() { //獲取當前窗口名稱 var parentName= window.name; /*(由于用的ssm框架)URL對應的是controller方法,并向其傳遞當前窗口名稱,打開的窗口顯示頁面即 為經過controller方法后返回的頁面*/ var url = root + "/adPosition/choseMerchant?parentName="+ parentName; laySum = parent.layer.open({ //設置打開的子窗口效果 type : 2, title : "選擇商家", shadeClose : true, shade : 0.5, shift : 0, area : [ '40%', '863px' ], content : url, success: function(layero, index){ } }); }
子層:
jsp中:
//頁面添加的隱藏輸入框,存儲的值是經過controller方法后返回的父窗口名稱,用于區分,將id設置為mainIframeName
<input type="hidden" id="mainIframeName" name="mainIframeName" value="${parentName}">
js代碼:
//設置function,當執行時,傳值并關閉當前窗口
function setvalue() { //得到“mainIframeName”輸入框中存儲的值 var mainIframeName = $("#mainIframeName").val(); //判斷是否為空或者是未定義 if (mainIframeName != "" && mainIframeName != "undefined") { //此處的ifrc和winc的意義可自行查閱 var ifrc = window.parent.frames[mainIframeName]; var winc = ifrc.window || ifrc.contentWindow; try { //設置父窗口隱藏輸入框的值為hello world winc.document.getElementById("getValue").value = "hello world!"; } catch (ex) { winc.location.reload(); } } //關閉當前窗口 var index = parent.layer.getFrameIndex(window.name); parent.layer.close(index); }
總結:此方法用于子層直接給父層元素賦值,從而達到傳值的效果,關鍵點在于需要將父層窗口名稱傳遞到子層中。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com