2016-09-19 51 views
4

是否可以打开一个新的弹出式选项卡,该选项卡可以在单独的线程中运行?更具体地说,如果我创建一个新的弹出选项卡并开始在新选项卡中进行调试,那么包含链接的选项卡也会暂停JavaScript,直到我在新选项卡中单击继续。我想要实现的是创建一个新的选项卡,以便在父项选项卡继续运行时对其进行调试。 我有使用Chrome浏览器的这个问题。请注意,这在Firefox中正常工作(尚未在其他浏览器中测试过)。如何使用JavaScript在单独的线程中打开新选项卡? (chrome)

回答

4

通常,chrome会强制新窗口在相同的进程ID上运行。 但是,有些技术允许网站打开一个新窗口而不强制它进入相同的过程:

使用指向不同网站的链接,该链接指向一个新窗口而不传递引用信息。

<a href="http://differentsite.com" target="_blank" rel="noreferrer">Open in new tab and new process</a> 

如果你想在新标签中打开一个新的进程,同时仍然传递来源的信息,您可以使用以下步骤在JavaScript:

  • 打开有关新标签:空白作其目标。
  • 将新打开的选项卡的opener变量设置为null,以便它无法访问原始页面。
  • 从about:blank重定向到与原始页面不同的网站。

例如:

var w = window.open(); 
    w.opener = null; 
    w.document.location = "http://differentsite.com/index.html"; 

技术上的原始网站仍具有通过w进入新的,但他们对待.opener = null作为线索阉割的窗口。

来源:https://bugzilla.mozilla.org/show_bug.cgi?id=666746

0

您是否尝试过使用Web Workers?不确定支持,但他们应该提供并行的JS执行功能。见herehere

+0

这就是矫枉过正了这个问题。由于这在Firefox中起作用,我认为该解决方案不需要对我的代码进行重大更改。 –

相关问题