在不重新加载页面的情况下复制Chrome中的标签?

时间:2013-03-07 20:23:14

标签: google-chrome google-chrome-extension google-chrome-devtools

有没有办法完全复制Google Chrome中当前标签的状态?我想要一个页面当前状态的精确副本,而不必在另一个选项卡中重新加载页面。

示例用例:

在新闻网站上浏览“幻灯片”时,我想保留我当前的幻灯片,但创建一个副本,以便我可以继续查看下一张幻灯片。如果我只是右键单击并“复制”选项卡,新页面将完全重新加载,重新处理所有Javascript并再次运行幻灯片前广告。

2 个答案:

答案 0 :(得分:3)

简而言之,“不能”。

我不是这方面的专家 但我可以通过某些方式实现类似的行为:

转储整个DOM

虽然从未尝试过。您可以将DOM转换为字符串,将其传递到新窗口,然后将其解析为文档。这将使您失去DOM事件和状态处理JavaScript。 (但这对您的情况有好处)

var dtab = window.open('about:blank', 'duplicate_a_tab');
dtab.document.open();
dtab.document.write("... yout html string ..");
dtab.document.close();

开发扩展

让用户以当前状态继续使用当前选项卡,您的扩展程序应该能够捕获该区域的屏幕截图并在新选项卡中打开该屏幕截图。市场上有大量的截图扩展插件。

如果该网站是您自己的

您可以开发在本地使用状态的服务,例如渐进式Web应用程序。单独提供一个指向“重复”的链接,该链接最终将在不同选项卡中以相同的本地状态和标记为“不同步”打开相同的URL。

  

当用户使用浏览器内置的重复项时,这将不起作用   功能。

答案 1 :(得分:1)

您可以使用以下代码满足上述要求。

`chrome.tabs.query({
    active:true,
},function(tab){
    currenttab = tab[0]
    chrome.tabs.duplicate(currenttab.id);
});`

从后台页面我们可以获取选项卡ID并使用该tabid我们可以发送复制该选项卡的命令。