• iframe父页面传递参数给子页面


    父页面通过ifarame传递参数

    有些时候,我们需要在嵌套页面。
    我们就需要使用iframe了。
    通过iframe传递参数给子页面。
    需求描述,当我们点击按钮的时候。
    传递参数给子页面。子页面接受后展示出来。
    我们使用postMessage() 方法用于安全地实现跨源通信。
    otherWindow.postMessage(message, targetOrigin, [transfer]);
    第一个参数你传递的消息
    第二个参数你传递的地址。(其值可以是 *(表示无限制)或者一个 URI)
    第三个参数transfer可选,是一串和 message 同时传递的 Transferable 对象。
    这些对象的所有权将被转移给消息的接收方,而发送一方将不再保有所有权。
    

    父页面传递参数

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>父页面给子页面传递参数</title>
        <style>
            html,
            body {
                height: 100%;
            }
        </style>
    </head>
    <body>
        <div>
            <input id="text" type="text" value="Runoob" />
            <button id="sendMessage">发送消息</button>
        </div>
        <iframe id="receiver" src="http://127.0.0.1:8848/%E7%A5%9E%E5%A5%87%E7%9A%84display/index.html" width="100%" height="100%">
            <p>我是标题</p>
        </iframe>
        <script>
            window.onload = function() {
                //获取iframe窗口的 contentWindow 属性
                var receiver = document.getElementById('receiver').contentWindow;
                console.log('receiver', receiver)
                // 给按钮绑定点击事件
                var btn = document.getElementById('sendMessage');
                btn.addEventListener('click', function(e) {
                    // 阻止事件的默认行为
                    e.preventDefault();
                    var val = document.getElementById('text').value;
                    // 传递数据给子页面.是我另外一个服务器的地址[http://127.0.0.1:8848]
                    receiver.postMessage("Hello " + val + "!", "http://127.0.0.1:8848");
                });
            }
        </script>
    </body>
    </html>
    

    子页面接受参数

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <style>
    	#divdemo{
    	   background:pink;
    	}
        </style>
    </head>
    <div id="recMessage">
      我是子页面
    </div>
    
    </body>
    <script>
    window.onload = function() {
        var messageEle = document.getElementById('recMessage');
        window.addEventListener('message', function (e) {  // 监听 message 事件
    	console.log("e",e)
            alert('消息来自的地址',e.origin);
            if (e.origin !== "http://127.0.0.1:5500") {  // 验证消息来源地址。这个地址是父页面的地址
                return;
            }
            messageEle.innerHTML = "从"+ e.origin +"收到消息: " + e.data;
        });
    }
    </script>
    </html>
    

  • 相关阅读:
    个人作业2——英语学习APP案例分析
    结对编程1
    个人作业1——四则运算题目生成程序(基于控制台)
    个人附加作业
    个人作业3——个人总结(Alpha阶段)
    结对编程2--单元测试
    个人作业2——英语学习APP的案例分析
    结对编程1 李雯钰66、钱惠71
    个人作业1——四则运算题目生成程序(基于控制台)
    软件工程的实践项目课程的自我目标
  • 原文地址:https://www.cnblogs.com/IwishIcould/p/15973826.html
Copyright © 2020-2023  润新知