使用iframe标签嵌套页面时,遇到了问题,父页面通过接口请求的数据,应该如何传给子页面呢?作为一个刚刚入门的前端小白,只有边百度边写demo,研究一下iframe的父子页面的传值,如果有什么不对的地方请大家指出。

父页面:father.html,子页面:son.html

1、父页面获取子页面传入的数据(子页面给父页面传值)

父页面:

//父页面接收子页面的数据
    function GetChildValue(obj) {
        document.getElementById('test').innerText = obj;
    }

子页面:

//子页面传给父页面的数据
    var txt = "这是子页面传给父页面的数据";
    parent.GetChildValue(txt);

2、子页面获取父页面的数据(父页面给子页面传值)

父页面:

//父页面传值给子页面
    function toChildValue() {
        var data = '这是父页面传给子页面的数据';
        return data;
    }

子页面:

//子页面接收父页面传过来的数据
    var data = window.parent.toChildValue();
    document.getElementById('txt').innerText = data;

父页面father.html完整代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>父页面</title>
    <style>
        .son{
            width: 100%;
            height: 90vh;
            border: 1px red solid;
        }
    </style>
</head>
<body>
<div>这里是父页面</div>
<p id="test"></p>
<iframe src="son.html" class="son"></iframe>
</body>
<script type="text/javascript">
    //父页面接收子页面的数据
    function GetChildValue(obj) {
        document.getElementById('test').innerText = obj;
    }
    //父页面传值给子页面
    function toChildValue() {
        var data = '这是父页面传给子页面的数据';
        return data;
    }
</script>
</html>

子页面son.html完整代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>子页面</title>
</head>
<body>
<div>这里是子页面</div>
<p id="txt"></p>
</body>
<script type="text/javascript">
    //子页面传给父页面的数据
    var txt = "这是子页面传给父页面的数据";
    parent.GetChildValue(txt);
    //子页面接收父页面传过来的数据
    var data = window.parent.toChildValue();
    document.getElementById('txt').innerText = data;
</script>
</html>

效果图:

俗话说:”好记性不如烂笔头“。希望可以记录下日常遇到的问题, 既可以分享,也能对自己知识加以梳理,何乐而不为呢!

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐