2012-03-11 194 views
4

我的谷歌浏览器扩展程序中有一个background-page,这个页面自然是不可见的。无论如何,这个隐藏的页面是可见的,比如在点击浏览器动作图标时弹出窗口。然后再次点击另一个隐藏它。在谷歌浏览器扩展程序中显示背景页面

回答

6

可以使用chrome.tabs.create方法显示背景页面,该方法需要tabs permission。例如,如果你的背景页面称为background.html,下面的代码可用于:

chrome.tabs.create({url: chrome.extension.getURL('background.html')}); 

参见:

+2

新选项卡中的背景页面是否与背景中不可见的页面相同,或者是否会打开另一个页面实例,而不可见的背景页面仍然不可见? – Nyxynyx 2012-03-11 21:08:04

+3

@Nyxynyx这是'background.html'的新实例。您将在“Active views”部分看到两个'background.html'链接。另外,'chrome.extension.getBackgroundPage()== window'是'false'。有**没有**方式显示隐藏的活动后台页面。您可以使用扩展程序中的链接,该扩展程序显示后台页面的开发人员工具。在此屏幕中,所有功能(包括实时DOM检查器)都可用。 – 2012-03-11 21:35:49

+0

谢谢背景页面的开发人员工具真的帮助!猜测这是我可以去查看页面进行调试的最接近的地方。 – Nyxynyx 2012-03-11 22:00:35

0

你可以打开backround_page a browserActionpopup。但它将是background_page的新实例。一个作为弹出窗口,另一个作为背景中的长时间隐形窗口。

0

在您的扩展程序的弹出页面中,添加一段JS,该实用程序为chrome.runtime.getBackgroundPage(callback)。给你的背景页的id<html>元素,并使用window.getElementById("myBackgroundPageHTMLElementId")

例如,你的回调看起来是这样的:

document.getElementById("myPopupHTMLElementId").outerHTML = backgroundWindow.getElementById("myBackgroundPageHTMLElementId").outerHTML 

后这个JS脚本完成,您的弹出页面的HTML元素将是完全用背景页面替换(直到你重新加载它)!这意味着即使在HTML元素上的所有属性都设置为背景页面的版本。

希望这会有所帮助!