關於使用iframe的父子頁面進行簡單的相互傳值


當一個頁面使用了iframe作為嵌套時,如何想要將父頁面的數據傳給iframe子頁面,那iframe所指向的呢個子頁面是怎么獲取呢,又或者子頁面的數據要給父頁面使用,那么父頁面又如何獲取子頁面的數據呢?下面根據這種情況作了一個簡單的demo案例:

父頁面是parentPage.html,子頁面是childPage.html。

1、情況一:父頁面獲取子頁面傳入的數據(子頁面給父頁面傳值)

父頁面:

//獲取子頁面傳入的數據
 function GetChildValue(obj){
   document.getElementById('texts').innerText = obj;
 }

子頁面:

//給父頁面傳數據
var txt = '我是子界面主動傳值給父界面的數值';
parent.GetChildValue(txt); //GetValue是父界面的Js 方法

 

2、情況二:子頁面獲取父頁面的數據(父頁面給子頁面傳值)

父頁面:

//給子頁面傳入數據
function toChildValue(){
    var txt = '這是父頁面給子頁面的數據';
    return txt;
}

子頁面:

//獲取父頁面傳來的數據
var getParentVule = window.parent.toChildValue();
console.log(getParentVule)

具體傳值的數據根據自己的項目要求修改,下面放上兩個頁面的完整代碼:

父頁面parentPage.htm

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>父頁面</title>
        <style type="text/css">
            .box{
                width: 600px;
                height: 400px;
                margin: 10px auto;
            }
            h3{
                font-size: 16px;
            }
            .cont{
                width: 100%;
            }
            .cont h4{
                font-size: 14px;
            }            
            .cont #texts{
                width: 100%;
                line-height: 22px;
                font-size: 13px;
                color: #2E2D3C;
            }
            
            iframe{
                /*只是隱藏,但任然保留DOM結構*/
                visibility: hidden;  
            }
        </style>
    </head>
    <body>
        <div class="box">
            <h3>這是父頁面</h3>
            <div class="cont">
                <h4>這是從子頁面傳入的數據:</h4>
                <div id="texts"></div>
                <iframe src="childPage.html" width="1px" height="1px" class="myIframe" name="myIframe"></iframe>
            </div>
        </div>
        
        
        <script type="text/javascript">
            //獲取子頁面傳入的數據
            function GetChildValue(obj){
                document.getElementById('texts').innerText = obj;
            }
            
            //給子頁面傳入數據
            function toChildValue(){
                var txt = '這是父頁面給子頁面的數據';
                return txt;
            }
        </script>
    </body>
</html>

 

 子頁面childPage.html

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>子頁面</title>
        <style type="text/css">
            .box{
                width: 600px;
                height: 400px;
                margin: 10px auto;
            }
            h3{
                font-size: 16px;
            }
        </style>
    </head>
    <body>
        <div class="box">
            <h3>這是子頁面</h3>
        </div>
        
        
        <script type="text/javascript">
            //給父頁面傳數據
            var txt = '我是子界面主動傳值給父界面的數值';
            parent.GetChildValue(txt); //GetValue是父界面的Js 方法
            
            
            //獲取父頁面傳來的數據
            var getParentVule = window.parent.toChildValue();
            console.log(getParentVule)
            
        </script>
    </body>
</html>

 


免責聲明!

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



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