如何实现从player.html页面复用原index.html标签页跳转至schedule.html
如何实现从player.html页面复用原index.html标签页跳转至schedule.html
嘿,这个需求其实用HTML的target属性配合窗口命名就能轻松搞定,我给你一步步说清楚怎么操作:
第一步:给index.html的窗口设置唯一名称
在index.html页面里,添加一段简单的JS代码,给当前窗口(也就是index所在的标签页)分配一个自定义名称,比如mainTab。这样后续其他页面就能通过这个名称精准定位到它:<!-- index.html 中的代码 --> <script> // 页面加载完成后给当前窗口命名 window.onload = function() { window.name = "mainTab"; }; </script> <!-- 打开player.html的链接,用_blank在新标签页打开 --> <a href="player.html" target="_blank">player</a>第二步:在player.html中配置跳转的target属性
在player.html里,把指向schedule.html的链接的target属性设置为我们刚才给index窗口起的mainTab。这样当你点击这个链接时,浏览器会自动找到那个名为mainTab的标签页,直接在里面加载schedule.html,完美复用原标签页:<!-- player.html 中的代码 --> <a href="schedule.html" target="mainTab">schedule</a>
原理其实很简单:window.name是浏览器窗口的内置属性,只要几个页面在同一个浏览器的同源环境下(你的三个页面肯定满足这个条件),不同标签页就能通过这个名称互相识别。当a标签的target指定为这个自定义名称时,浏览器就会优先复用对应名称的窗口来加载新页面,完全匹配你想要的流程。
小提醒:如果不小心关掉了原来的index标签页,点击player里的schedule链接时,浏览器会自动新开一个标签页加载内容,这是浏览器的正常兜底行为,不用慌~
备注:内容来源于stack exchange,提问作者KjayCopper
相关产品推荐
相关产品推荐

