是否可以打开一个在单独的线程中运行的新弹出选项卡?更具体地说,如果我创建一个新的弹出选项卡并在该新选项卡中开始调试,则包含链接的选项卡也会暂停javascript,直到我在新选项卡中单击resume。我想要实现的是创建一个分离的新选项卡,以便在父选项卡继续运行时我可以调试它。 我使用Chrome浏览器时遇到此问题。请注意,这在Firefox中运行良好(尚未在其他浏览器中测试过)。
答案 0 :(得分:6)
通常chrome会强制新窗口在相同的进程ID上运行。 但是,有一些技术允许站点打开一个新窗口而不强制它进入同一个过程:
使用指向新窗口的其他网站的链接,而不传递引荐来源信息。
<a href="http://differentsite.com" target="_blank" rel="noreferrer">Open in new tab and new process</a>
如果您希望在新流程中打开新标签,同时仍然传递引荐来源信息,则可以在JavaScript中使用以下步骤:
例如:
var w = window.open();
w.opener = null;
w.document.location = "http://differentsite.com/index.html";
从技术上讲,原始网站仍然可以通过w
访问新网站,但是他们将.opener = null视为中间窗口的线索。
答案 1 :(得分:0)
答案 2 :(得分:0)
当使用domagojk引用的null打开技巧时,当前版本的Chrome似乎没有使用单独的线程。但是,如果您使用的是javascript处理程序,您仍然可以利用他提到的noreferrer链接技巧:
var e = document.createElement("a");
e.href="/index.html";
e.target="_blank";
e.rel = "noreferrer";
e.click();
答案 3 :(得分:0)
尽管不是完全答案,但对我来说,这是最佳答案。打印对话框不应阻塞。
我已将此报告为错误并给出了测试用例。在此处显示您的支持-https://bugs.chromium.org/p/chromium/issues/detail?id=1023161&q=ryein%20goddard&colspec=ID%20Pri%20M%20Stars%20ReleaseBlock%20Component%20Status%20Owner%20Summary%20OS%20Modified
我认为,一旦Chromium修复了此错误,我们就不必再担心它了。目前,这确实是唯一的选择。
对我来说,答案是我们需要Google / Chromium来解决此问题。