layer子層給父層頁面元素賦值,以達到向父層頁面傳值的效果


父層:

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); }

總結:此方法用於子層直接給父層元素賦值,從而達到傳值的效果,關鍵點在於需要將父層窗口名稱傳遞到子層中。

2017-09-21 22:48:33


免責聲明!

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



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