2012-03-11 195 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元素上的所有屬性都設置爲背景頁面的版本。

希望這會有所幫助!