首页 > 其他分享 >9月20日总结

9月20日总结

时间:2023-09-21 13:13:10浏览次数:31  
标签:总结 打开 20 标签 window 上下文 query audio

浏览器标签页之间通信的实现
使用场景

​ 前端开发过程中,总是避免不了要进行前端标签页之间的通信,最经典的例子莫过于音乐播放网站中,当第一次点击播放列表中的歌曲时,它会打开一个新的标签页进行播放,而当在列表中再次点击歌曲播放时,并不会再多打开一个标签页,而是会在刚才新打开的标签页上播放歌曲。
方式方法

这里跳转新页面均使用window.open[1]方法,这里稍微说下window.open方法的参数

url(可选)
一个字符串,表示要加载的资源的 URL 或路径。如果指定空字符串("")或省略此参数,则会在目标浏览上下文中打开一个空白页。

target(可选)
一个不含空格的字符串,用于指定加载资源的浏览上下文的名称。如果该名称无法识别现有的上下文,则会创建一个新的上下文,并赋予指定的名称。还可以使用特殊的 target 关键字:_self、_blank、_parent 和 _top。

该名称可用作<a>或<form>元素的target属性。

windowFeatures(可选)
一个字符串,包含以逗号分隔的窗口特性列表,形式为 name=value,布尔特性则仅为 name。这些特性包括窗口的默认大小和位置、是否打开最小弹出窗口等选项。

在下面的例子中采用audio,作为浏览上下文的名称,让他从始至终只创建一个新的标签页

1.使用路由上的query传参

list.html

const broadCastChannel = new BroadcastChannel('audio')
function showAudio(){
//方式一:通过query,缺点会刷新已打开的页面,但并没有同源策略影响
window.open('/audio.html?name=张三&id=555','audio')

}

audio.html

const app = document.getElementById('app')
const query = new URLSearchParams(window.location.href.split('?')[1])
app.innerText = query.get('name')

优点:每次打开,audio页面都会变为当前活动标签页

缺点:

每次打开,audio页面都会被刷新,重新加载
如果新打开的浏览上下文不共享相同的源[2],则打开脚本将无法与浏览上下文的内容进行交互(读取或写入)。

2.使用localStroage监听

标签:总结,打开,20,标签,window,上下文,query,audio
From: https://www.cnblogs.com/lmyy/p/17719716.html

相关文章

  • 【230921-6】如图,在四边形ABCD中,B=C=120°,AB=4,BC=CD=2. 则该四边形的面积=?
    ......
  • 9月12日总结
    博客园首页新随笔联系订阅管理随笔-283文章-0评论-234阅读-53万Java21新特性:RecordPatternsRecordPatterns第一次发布预览是在JDK19、随后又在JDK20中进行了完善。现在,Java21开始正式推出该特性优化。下面我们通过一个例子来理解这个新特性。reco......
  • 9月14日总结
    记一次.NET某餐饮小程序内存暴涨分析一:背景讲故事前些天有位朋友找到我,说他的程序内存异常高,用vs诊断工具加载时间又太久,让我帮忙看一下到底咋回事,截图如下:确实,如果dump文件超过10G之后,市面上那些可视化工具分析起来会让你崩溃的,除了时间久之外这些工具大多也不是用......
  • 9月13日总结
    DenpendcyInjection8.0新功能——KeyedService分类:.NET标签:KeyedService,DenpendcyInjection,ASP.NETCOREDenpendcyInjection8.0新功能——KeyedService本文只介绍.NETDenpendcyInjection8.0新功能——KeyedService,假定读者已熟练使用之前版本的功能。注册......
  • 9月15日总结
    责任链模式作为常用的设计模式而被大家熟知和使用。本文介绍责任链的常见实现方式,并结合开源框架如Dubbo、Sentinel等进行延伸探讨。一、责任链介绍在GoF的《设计模式》一书中对责任链模定义的:将请求的发送和接收解耦,让多个接收对象都有机会处理这个请求。将这些接收对象串成一......
  • 美国2009年开始入侵华为总部服务器;马斯克脑机公司将进行首次人体试验;全球首个5G卫星电
    开发者朋友们大家好:这里是「RTE开发者日报」,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享RTE(RealTimeEngagement)领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「有看点的会议」,但内容仅代表编辑的个人观点,欢迎大家留......
  • 今日学习笔记2023年9月20日
    1#我的第一条代码2print('helloworld')#这是一条注释3print('这是我的第一条编程命令')4name='egon'#定义变量5print(name)#引用变量6age=187print(age)89x=1010y=x11z=x1213delx#解除X与10的绑定关系14#print(y)......
  • VS2017使用自定义头文件
    VS2017使用自定义头文件头文件的使用能大大提高C语言编程效率。公共头文件直接使用类似于#include<stdio.h>即可。下面介绍如何使用自定义的头文件。实例:计算两个整数加和在源文件中添加Add.c源文件在头文件中,添加头文件myhead.h在主函数中,添加头文件声明没有......
  • 9月11日总结
    慢SQL原因分析之索引失效现象最近收到一个慢sql工单,慢sql大概是这样:“selectxxxfromtabelwheretype=1”。咦,type字段明明有索引啊,为啥是慢sql呢?原因通过执行explain,发现实际上数据库执行了全表扫描,从而被系统判定为慢sql。这时有一定开发经验的同事会说:“字段区分度......
  • 每日总结01
    刚开学的时候配置了虚拟机中的hadoop、zookeeper、hbase。在当时还可以使用,但是就在昨天居然不能用了,hadoop、zookeeper、hbase都可以正常使用,但是就是无法连接hbase,于是开始重新配置环境、重新配置虚拟机中的hadoop、zookeeper、hbase。具体出现什么问题不明确,怀疑是强制开关机导......