news 2026/4/29 15:10:27

浏览器内多标签页同步内容

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
浏览器内多标签页同步内容

最简单的是通过广播订阅实现同浏览器之间的消息同步,这不是唯一解,胜在好用,原生支持。它生效在同一个浏览器中,不过不同浏览器之前一般不涉及消息同步,那需要依靠服务端

<!DOCTYPEhtml><htmllang="zh-CN"><head><metacharset="UTF-8"><title>跨标签页同步Demo</title></head><body><!-- 唯一元素:文本域 --><textareaid="editor"rows="20"cols="80"placeholder="在此输入..."></textarea><script>// 获取文本域元素、创建一个叫做text-sync-demo的广播订阅、以及生成当前标签页的标识consttextarea=document.getElementById('editor');constchannel=newBroadcastChannel('text-sync-demo');constsessionId=Date.now().toString(36);letisComposing=false;// 聚合状态标志// 发送消息的方法,广播文本内容,带发送者IDfunctionbroadcast(text){channel.postMessage({type:'update',text:text,sender:sessionId});}// 1. 聚合事件:中文输入法开始/结束textarea.addEventListener('compositionstart',()=>{isComposing=true;});textarea.addEventListener('compositionend',(e)=>{isComposing=false;// 组合结束后立即发送最终文本broadcast(textarea.value);});// 2. 修改事件:普通输入(非组合状态)textarea.addEventListener('input',()=>{if(!isComposing){broadcast(textarea.value);}});// 初始化时尝试从其他标签页恢复内容channel.postMessage({type:'request-state',sender:sessionId});channel.onmessage=(event)=>{const{type,text,sender}=event.data;// 排除自身,同步文本域内容if(type==='update'&&sender!==sessionId){textarea.value=text;}elseif(type==='request-state'&&sender!==sessionId&&textarea.value){// 其他标签页请求当前文本,回复一条更新broadcast(textarea.value);}};</script></body></html>
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/29 15:09:49

用Matlab搞定非对称3-SPR并联机器人:从建模到正逆解完整代码实战

非对称3-SPR并联机器人Matlab实战&#xff1a;从零构建运动学工具箱 在工业自动化与精密控制领域&#xff0c;并联机器人凭借其高刚度、高精度和快速响应的特性&#xff0c;正在重塑高端制造的生产方式。不同于串联机器人的开链结构&#xff0c;3-SPR并联机构采用三条独立的SPR…

作者头像 李华
网站建设 2026/4/29 14:59:27

C++LeetCode数据结构基础详解

一、只出现一次的数字遍历一遍数组利用异或的特性来实现&#xff08;相同为0&#xff0c;相异为1 &#xff09;例如[4,1,2,1,2] 4和1异或为5 5和2异或为7 7和1异或为6 6和2异或为4 这样就能找出唯一的数字了1234567public int singleNumber(int[] nums) {int res0;for(int i0;i…

作者头像 李华
网站建设 2026/4/29 14:59:27

计算机毕业设计(软件工程方向)全阶段时间规划与实操指南

前言对于计算机类、软件工程专业的本科生而言&#xff0c;毕业设计是大学四年专业能力的最终综合验收&#xff0c;也是从校园走向职场前最完整、最规范的一次全流程项目实战。它不仅考验编程能力、技术应用能力&#xff0c;更考验需求分析、系统设计、文档撰写、项目管理与答辩…

作者头像 李华
网站建设 2026/4/29 14:55:37

QLVideo:深度解析macOS非原生视频格式的终极预览解决方案

QLVideo&#xff1a;深度解析macOS非原生视频格式的终极预览解决方案 【免费下载链接】QuickLookVideo This package allows macOS Finder to display thumbnails, static QuickLook previews, cover art and metadata for most types of video files. 项目地址: https://git…

作者头像 李华