演示
1、express服务器搭建
const express = require('express')
const fileUpload = require("express-fileupload");
const app = express()
const cors = require('cors')
app.use(cors())
app.use(express.urlencoded({ extended: false }))
app.use(fileUpload())
//导入路由模块
const uploadRouter = require('./router/upload')
app.use(uploadRouter)
app.listen(8000, function () {
console.log('api serve running at http://127.0.0.1:8000');
})
2、创建两个页面,并注册路由
3、发送方item1.html代码如下
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>标签一</title>
</head>
<body>
<ul>
<li>item1</li>
<li>item2</li>
<li>item3</li>
</ul>
</body>
<script>
const items = document.querySelectorAll('li')
const channel = new BroadcastChannel('item')
for (const item of items) {
item.onclick = function (e) {
const msg = this.innerHTML
localStorage.setItem('msg', msg)
channel.postMessage(msg)
}
}
</script>
</html>
4、接收方item2.html代码如下
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>标签二</title>
</head>
<body>
我是接收
<div></div>
</body>
<script>
const channel = new BroadcastChannel('item')
const div = document.querySelector('div')
channel.addEventListener('message', (e) => {
console.log(e.data);
div.innerHTML = e.data
})
</script>
</html>