主页面与iframe子页面互相传值

有web开发中,有时候,我们会遇上这样的问题:在主页面弹出一个iframe子页面,将主页面中数据传到iframe子页面

具体的实现请看以下代码:

主页面代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head>  
    <title></title>  
    <script src="../临时文档/jquery1.4.2.js" type="text/javascript"></script>  
    <script type="text/javascript">  
        function openWindow() {  
            var oldValue = { Name:$("#Name").val(),Age:$("#Age").val() };  
            var result = popModal("main1.html", 300, 200, oldValue);  
            if (result!=null && typeof (result) != "undefined") {  
                $("#Name").val(result.Name);  
                $("#Age").val(result.Age);  
            }  
        }  
        //输入参数: 路径,宽度,高度,参数(可选)  
        function popModal(url, width, height, parameter ) {  
            var feature = 'dialogWidth=' + width+'px'  
        + ';dialogHeight=' + height + 'px'  
        + ';dialogTop=' + (screen.height - height) / 2 + 'px'  
        + ';dialogLeft=' + (screen.width - width) / 2 + 'px'  
        + ';help:no;resizable:no;status=no;scroll:no';  
            if(typeof(parameter)=="undefined")  
                return window.showModalDialog(url, feature);  
            else  
                return window.showModalDialog(url, parameter, feature);  
        }  
  
        //=====================================================================  
        //功能说明: 弹出一个窗口  
        //输入参数: 路径,窗口名称,宽度,高度  
        function pop(helpurl, windowName, width, height) {  
            var feature ='width=' + width   
                + ',height=' + height  
                + ',top=' + (screen.height - height) / 2  
                + ',left=' + (screen.width - width) / 2  
                +',toolbar=no,menubar=no,scrollbars=yes,resizable=no,location=no,status=no';  
            window.open(helpurl, windowName, feature);  
        }  
 </script>  
</head>  
<body>  
    <div>  
        名字<input id="Name" type="text" /><br />  
        年龄<input id="Age" type="text" /><br />  
        <input id="Button1" type="button" value="打开模式窗口" οnclick="openWindow()" />  
    </div>  
</body>  
</html>  

子页图代码:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml">  
<head>  
    <title></title>  
    <script src="../临时文档/jquery1.4.2.js" type="text/javascript"></script>  
    <script type="text/javascript">  
        $(function () {  
            var param = window.dialogArguments;  
            $("#Name").val(param.Name);  
            $("#Age").val(param.Age);  
        });  
        function closeWindow() {  
            var result = {};  
            result.Name = $("#Name").val();  
            result.Age = $("#Age").val();  
            window.returnValue = result;  
            window.close();  
        }  
    </script>  
</head>  
<body>  
    <div>  
        名字<input id="Name" type="text" /><br />  
        年龄<input id="Age" type="text" /><br />  
        <input id="Button1" type="button" value="关闭模式窗口" οnclick="closeWindow()" />  
    </div>  
</body>  
</html>  

实现效果如图所示:


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在前端页面中,可以通过使用postMessage()方法来实现iframe页面。首先,在页面中添加一个按钮或者其他触发事件的元素,例如一个按钮元素。然后,使用JavaScript代码监听该按钮的点击事件,并在点击事件中使用window.parent.postMessage()方法将要递的发送给父页面。具体步骤如下: 1. 在页面中,添加一个按钮或其他触发事件的元素。比如,在页面的HTML代码中添加一个按钮元素,例如: ```html <button id="admin-btn"></button> ``` 2. 在页面的JavaScript代码中,监听按钮的点击事件,并使用postMessage()方法将要递的发送给父页面。例如: ```javascript $("#admin-btn").on('click', function(){ event.stopPropagation(); // 防止事件冒泡 let info = { msg: '我是页面' }; window.parent.postMessage(info, '*'); }); ``` 这样,当点击按钮时,页面将会向父页面递一个包含具体信息的对象。父页面可以通过在mounted()或者其他适合的时机监听message事件来接收并处理页面递的。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [iframe页面页面如何](https://blog.csdn.net/qq_38475901/article/details/121768098)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值