首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

window.open无法在同一会话中打开

问题: window.open 无法在同一会话中打开,应该如何解决?

答案:

当使用 window.open 函数打开新窗口或标签页时,如果已经在同一个会话中打开了该窗口或标签页,window.open 将无法再次打开同一窗口或标签页。这种情况可能会在您尝试打开已打开的窗口或标签页时发生。

要解决这个问题,您可以尝试使用以下方法:

  1. 使用具有不同参数的 window.open 调用: 在调用 window.open 时使用不同的参数,以创建一个具有新 URL 的窗口或标签页。这样,新窗口或标签页将不会覆盖同一会话中的现有窗口或标签页。

示例:

代码语言:javascript
复制

// 打开一个新窗口或标签页

window.open('https://www.example.com', '_blank');

// 打开另一个具有不同 URL 的窗口或标签页

window.open('https://www.example2.com', '_blank');

代码语言:txt
复制
  1. 使用 window.opendependent 参数: 使用 dependent 参数告诉浏览器在新窗口或标签页打开时,如果已经打开了一个相同类型的窗口或标签页,则不执行打开操作。

示例:

代码语言:javascript
复制

// 打开一个新窗口或标签页

window.open('https://www.example.com', '_blank', { dependent: true });

代码语言:txt
复制
  1. 使用 sessionStoragelocalStorage 存储窗口或标签页的 ID: 在新窗口或标签页中,将当前窗口或标签页的 ID 存储到 sessionStoragelocalStorage 中。然后在关闭新窗口或标签页时,从 sessionStoragelocalStorage 中删除该 ID。这样,当您尝试再次打开新窗口或标签页时,浏览器将知道它不是同一窗口或标签页。

示例:

代码语言:javascript
复制

// 在新窗口或标签页中

const currentWindowId = window.location.href;

sessionStorage.setItem('windowId', currentWindowId);

// 在关闭新窗口或标签页时

window.addEventListener('unload', function () {

代码语言:txt
复制
 const currentWindowId = sessionStorage.getItem('windowId');
代码语言:txt
复制
 if (currentWindowId) {
代码语言:txt
复制
   window.location.href = currentWindowId;
代码语言:txt
复制
 }

});

代码语言:txt
复制

以上方法可以帮助您解决 window.open 无法在同一会话中打开的问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

多线程构建场景下Powermockito无法不同类Mock同一个静态方法

修改单元测试的过程,不幸踩了个坑,发现 Powermockito 的PowerMock.mockStatic(ClassThatContainsStaticMethod.class) 多线程场景下是无法正常工作的...由于测试中直接调用 C.getSomeObject() 会导致一些不可预期的错误,所以我想对AB类进行测试就必须使用Mock,于是我那么写: Class ATest{true@Beforetruepublic...C.class)truetruePowerMock.when(C.C.getSomeObject()).thenReturn(PowerMock.mock(SomeObject.class))true}} 当我IDE...由于我不是Powermockito的专家,所以无法深入的去探究这个问题的原因,但是我想,这应该是和静态方法本身在一个JVM内的唯一性有关,我截取了网上两个解释供参考: Explanation 1 Without

5.4K30

office xls 文件已损坏 无法打开 word试图打开文件时遇到错误

小提示: Office 2010的新特性是打开非本机创建的文件时会使用受保护的视图打开,因此我的“其他来源”主要指几个方面。...其他来源: 1.邮件的附件:别人通过邮件发给我的附件,由于不是由本机创建的文档,所以Office 2010会以受保护视图打开。...“受保护视图”是Office 2010新推入的安全措施,以阻止恶意文档对本机的破坏。如果让Office以正常模式打开文件应该就可以了。...右键单击文档,弹出的快捷菜单中选择“属性”,在打开的“属性”对话框的“常规”标签,单击“解除锁定”按钮,这时再打开文档就不会再出错了。 彻底解决方法1:修改uxtheme.dll文件权限。...并授予完全控制权限,问题得到解决 彻底解决办法2:修改选项配置 (转自http://www.cnblogs.com/liubiqu/archive/2009/12/17/1626514.html) 进入文件菜单的选项

2.4K10

同一word文档设置不同页码

以写论文来举例,我们封面那里不要页码,目录那里需要插入罗马数字页码,正文那里需要插入阿拉伯数字页码,那么如何在同一文档插入不同页码呢?以下拿一个作业作为演示。...(opens new window) 1、把文档结构确定好,比如封面、目录和正文,然后每一部分与每一部分之间插入分隔符,具体操作为:点击“页面布局”-“分隔符”-“下一节”。...在编号格式里选择罗马数字,页码编号里选择起始页码,填I,点确定。 6、正文部分按照相同的方法设置成阿拉伯数字页码。这样整篇文章的页码就弄好了哦。...添加分隔符的一个最大的好处就是你一节内做的编辑不会影响到其他节。潘鑫博客

1.7K10

Oracle,如何定时清理INACTIVE状态的会话

今天小麦苗给大家分享的是Oracle,如何定时清理INACTIVE状态的会话Oracle,如何定时清理INACTIVE状态的会话?...一般情况下,少量的INACTVIE会话对数据库并没有什么影响,但是,如果由于程序设计等某些原因导致数据库出现大量的会话长时间处于INACTIVE状态,那么将会导致大量的系统资源被消耗,造成会话数超过系统...此时就需要清理那些长时间处于INACTIVE状态的会话。...人为定期检查、杀掉这类会话肯定不太现实,要定期清理那些长时间处于INACTIVE的会话,可以使用如下几种办法: 1. sqlnet.ora文件里加上sqlnet.expire_time,单位为分钟数。...推荐使用这种方法来释放INACTIVE状态的会话

2.2K20

电脑和打印机同一个网络却无法打印?

电脑和打印机同一个网络内,却无法打印,这个客户也挺最艰难的,资金遇到问题,暂时居家办公了,能帮就帮一吧。 故障现象:打印机连接网线后,还是无法打印。...看打印机的面板,是获取到正确的IP地址了,但是,电脑上根本ping不通这个IP 地址,客户说,这台打印机支持WIFI连接,以后插网线也不方便,希望能配置为连接WIFI打印。...直接在手机上配置打印机连接到路由器的WIFI,使用的是与电脑连接的同一个WIFI名称,连接完成后,打印机又获取到的正确的IP 地址。 可是,电脑又ping不通这个地址,那就更别提打印了。...既然知道了问题所在,那解决起来就简单了,让客户重新连接到非访客WIFI就好了,然后打印机属性页面,端口页面修改为当前IP就可以了,当然了,还需要在路由器里面,绑定一下打印机当前获取到的IP,以免打印机IP变化,又导致无法打印

10410

iOS防止WKWebView打开Universal Link

这种方式需要提前判断系统是否安装了能够响应此scheme的App,并且这种方式微信被禁用。...如果未安装您的应用程序,则系统会在 Safari 打开URL,以使您的网站能够处理它。浏览器可以正常跳转,因此没装App的时候,不会像schema出现网页无效的框....打开Universal Link,如果你对如何获取Universal Link感兴趣可看第二章节iOS 创建 Universal Links I 、防止WKWebView打开Universal Link...demo下载地址:https://download.csdn.net/download/u011018979/21361507 1.1 防止WKWebView打开Universal Link的原理...: 防止WKWebView打开Universal Link的原理:WKNavigationDelegate的协议方法- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction

2.9K30

不同电脑上随时打开和修改同一个Power BI模型

自然,我的所有文件也应当放在OneDrive。 但是不同电脑OneDrive存放位置不一定相同,因此导致模型和文件都放在OneDrive,但是文件路径不同,因此模型还是没办法在其他电脑使用。...因此,以下几篇文章就派上了用场: Power BI刷新避免使用网关,蚊子肉也是腿,电费也是钱 PowerBI从Onedrive文件夹获取多个文件,依然不使用网关 针对“PowerBI从Onedrive...获取文件”两篇文章做个补充 可以通过设置将OneDrive的文件,也就是本地文件变为网络文件,这样,不论我在哪台电脑上修改文件,每台电脑的文件路径不同,模型都是从相同的网络位置获取该文件;而且无论在哪台电脑修改模型

1.1K30

VMware的ubuntu虚拟机开机黑屏,无法打开桌面

昨天因为虚拟机搭环境,崩了,可能是因为脚本错误什么的原因,或者误删除了什么东西的原因,导致,虚拟机重启之后一直处于黑屏状态。...:(笔者尝试了,关3D,但是笔者的本来就关了) 1、使用ctrl+Alt+F1键 登录字符界面 2、查看 /var/log/kern.log 3、发现确实有个SVG3D的Error 关闭虚拟机,打开虚拟机设置...(VM->Settings->Hardware->Display右面的内容栏中将Accelerate 3D graphics 取消打勾,然后重启即可) (注意3之前是关闭Ubuntu,不是挂起,只是挂起的话...实验三:查看错误提示 显示grub菜单的时候,按 e ,可以调整内核启动的参数,把 quiet splash 改成 text splash。 F10 启动后,进入命令行模式。...startx进入图形模式,报 Error:API mismatch: the NVIDIA kernel module … ,找到故障原因,是nvidia 显卡驱动不完全安装造成无法进入图形模式。

6.5K11

Windows 配置添加右键菜单 —— VSCode打开

Windows上面安装Visual Studio Code代码编辑器时,常常会因为安装的时候忘记勾选相关选项等原因,没有将“Open with Code”(右键快捷方式)添加到鼠标右键菜单里,所以需要手动将...VSCode相关快捷打开添加至鼠标右键菜单之中。。...简介 我们经常需要在 Windows 用 VS Code 打开各各地方的文件夹、文件,但之前苦于不知道简便的方法直接打开 VS Code,需要 打开文件夹 -> 复制路径 就很麻烦 事实上 VS...Code 支持右键快捷菜单 可以安装时选择配置 一旦安装时没有勾选,Windows 下就需要修改注册表了 通过注册表添加右键 VS Code 快捷菜单 核心思路 进入注册表右键菜单配置项 手动加入...VS Code 项,配置名称 配置可执行程序路径 配置图标 操作流程 win+r 键打开cmd命令,输入regedit`,打开注册表 找到 HKEY_CLASSES_ROOT\Directory\shell

9.1K60
领券