postMessage通信

  • 需要安装 npm i express -S
    在这里插入图片描述
index.html

<body>
<div style="width:200px; float:left; margin-right:200px;border:solid 1px #333;">
    <div id="color">Frame Color</div>
</div>
<div>
    <iframe id="child" src="http://localhost:1233/index.html"></iframe>
</div>

<script type="text/javascript">

    window.onload=function(){
        window.frames[0].postMessage('getcolor','http://localhost:1233');
    }

    window.addEventListener('message',function(e){
        console.log(e)
        var color=e.data;
        document.getElementById('color').style.backgroundColor=color;
    },false);
</script>
</body>
app.js

const express = require('express'); //需要安装 npm i express -S
const app = express();
app.use(express.static('static'));
app.listen(1234, err => {
    if (err) return;
    console.log('服务器启动在:' + 'http://localhost:1234');
});

在这里插入图片描述

index.html

<body style="height:100%;">
<div id="container" onclick="changeColor();" style="widht:100%; height:100%; background-color:rgb(204, 102, 0);">
  click to change color
</div>
<script type="text/javascript">
  var container=document.getElementById('container');

  window.addEventListener('message',function(e){
    if(e.source!=window.parent) return;
    var color=container.style.backgroundColor;
    window.parent.postMessage(color,'*');
  },false);

  function changeColor () {
    var color=container.style.backgroundColor;
    if(color=='rgb(204, 102, 0)'){
      color='rgb(204, 204, 0)';
    }else{
      color='rgb(204,102,0)';
    }
    container.style.backgroundColor=color;
    window.parent.postMessage(color,'*');
  }
</script>
</body>
app2.js

const express = require('express'); //需要安装 npm i express -S
const app = express();
// const path = require('path');

//下边三行代码,哪个都可以,具体区别查看文章顶部的参考文章
// app.use(express.static(path.join(__dirname, 'static')));
// app.use(express.static(__dirname + '/static'));
app.use(express.static('static1'));


app.listen(1233, err => {
    if (err) return;
    console.log('服务器启动在:' + 'http://localhost:1233');
});
  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值