基于浏览器父子窗口值传递

客官°小女子只卖身不卖艺 2022-05-31 08:42 220阅读 0赞

概述

我们需要两个窗口进行不同的操作,互相不影响,并且能将值传递过去

详细

代码下载:http://www.demodashi.com/demo/10551.html

一、准备工作

1、需要准备好一个服务容器,例如tomcat之类的服务容器

2、本例子主要实现了一个父子窗口之间的值传递

二、程序实现

1、文件截图

微信截图\_20170706100237.png

2、运用该案例主要有以下步骤:

  • 打开tomcat的ROOT目录
  • 把两个文件丢到ROOT目录
  • 用支持HTML5的浏览器打开http://127.0.0.1:8080/posIndex.html

3、win.html的div部分代码如下:

  1. <h1>The New Window</h1>
  2. <div id="txt"></div>
  3. <input type="text" id="message" />
  4. <button id="send">send</button>

js部分代码如下:

  1. window.onload = function() {
  2. var text = document.getElementById('txt');
  3. var btn_send = document.getElementById('send');
  4. var prent = null;
  5. btn_send.onclick = function() {
  6. // 通过 postMessage 向父窗口发送数据
  7. freceiveMsg(prent);
  8. }
  9. //监听函数,接收一个参数--Event事件对象
  10. function receiveMsg(e) {
  11. console.log("Got a message!");
  12. console.log("Message: " + e.data);
  13. console.log("Origin: " + e.origin);
  14. text.innerHTML = "Got a message!<br>" +
  15. "Message: " + e.data +
  16. "<br>Origin: " + e.origin;
  17. //获取父对象
  18. prent = e;
  19. }

4、posIndex.html的div部分代码如下:

  1. <button id="btn">open</button>
  2. <button id="send">send</button>
  3. <input type="text" id="message" />
  4. <br/><br/>
  5. <div id="txt"></div>

js部分代码如下:

  1. window.onload = function() {
  2. var btn = document.getElementById('btn');
  3. var btn_send = document.getElementById('send');
  4. var text = document.getElementById('txt');
  5. var win;
  6. btn.onclick = function() {
  7. //通过window.open打开接收消息目标窗口
  8. win = window.open('http://127.0.0.1:8080/win.html', 'popUp');
  9. }
  10. btn_send.onclick = function() {
  11. // 通过 postMessage 向子窗口发送数据
  12. win.postMessage( document.getElementById("message").value, 'http://127.0.0.1:8080/');
  13. }

三、运行效果

微信截图\_20170706100746.png

注:本文著作权归作者,由demo大师(http://www.demodashi.com)宣传,拒绝转载,转载需要作者授权

发表评论

表情:
评论列表 (有 0 条评论,220人围观)

还没有评论,来说两句吧...

相关阅读

    相关 js父子页面模态窗口

           今天闲来无事,练习父页面中打开一个模态窗口,同时可以将父页面的某些数据传到模态窗口,并将模态窗口的数据回传到父页面。在chrome浏览器上有问题通过bug调试,c

    相关 MFC 两个窗口 传递

    2018年3月4日20:42:54 好久没摸过MFC了 身边的小伙伴又有人入坑MFC ,(我都已经 好久不碰这玩意儿了)今天问我怎么在两个窗口之间传值。接着上次,做一次总结