【发布时间】:2017-03-04 18:33:36
【问题描述】:
我使用以下内容打开包含一些页面内容的新标签(在新进程中),
var p = document.getElementById("myElement");
var a = document.createElement('a');
a.setAttribute('href',".../mypage.html");
a.setAttribute('rel',"noreferrer");
a.setAttribute('target',"_blank");
p.appendChild(a);
a.click();
http://news.softpedia.com/news/Force-Google-Chrome-to-Open-Links-in-New-Processes-128962.shtml
当您使用此代码时,它总是会打开新标签页, 我希望当您调用此代码时,它会查看它是否是在新选项卡中打开的先前调用,然后它将关闭它并且新调用将在新选项卡中打开。 或者可能在不关闭的情况下在前一个选项卡中运行新页面。
我无法使用常规的 window.open API ...
【问题讨论】:
-
那样做,你可能根本无法访问新打开的标签页,这就是为什么
window.open通常是首选的原因。 -
服务工作者可以是一个选项,因为这两个页面都在同一个域中提供。如果您的服务器有后端技术,您可以将内容发送到服务器,并让新标签每 3 秒发出一次请求以进行更改或使用 websocket 连接
-
@Andrews - 谢谢,但我没有服务器端,我们的 impl 是纯 js 客户端,那我可以使用 service worker 吗?如果可以,你能举个例子吗?
-
@adeneo - 所以你认为 100% 没有办法/技巧/解决方法来实现这一目标?对不起,我们不能使用 windwo.open ...
-
有趣的问题值得一试Service Workers
标签: javascript html google-chrome chromium service-worker