2013-09-24 95 views
1

所以,我有我的Chrome擴展,在後臺運行良好。每隔幾個小時,它就會使用通知API向用戶提出問題。Chrome擴展:在後臺運行時打開窗口

如果他們點擊一個答案,我們會在當前窗口中打開一個選項卡。

問題:如果沒有打開chrome窗口(即擴展程序正在作爲「讓谷歌瀏覽器在後臺運行」選項的一部分運行),則該選項卡不會打開。

下面是其中只要有至少一個打開Chrome窗口正常工作代碼:

// tried this too: chrome.windows.create(); 
chrome.tabs.create({url: pathToGo}); 

如何使「chrome.windows.create()」實際上使一個窗口,如果有沒有已經打開。

+0

這對我來說好像是預期的行爲。後臺頁面報告的錯誤控制檯是什麼?也許你可以排隊你tab.create請求,並等待用戶決定重新打開瀏覽器? – Andrey

+0

是的,這是我認爲 - 他們不希望你強迫打開窗戶。 – Chris

+0

而不能看到控制檯,因爲有檢查員打開計爲一個窗口,所以它工作正常。 – Chris

回答

0

使用chrome.windows.getAll(object getInfo, function callback) API來獲取所有打開的窗口。 如果在回調中,窗口數組爲空,則使用chrome.windows.create(object createData, function callback)創建一個新窗口。

如果您無法創建新窗口,請使用chrome.notifications API。 http://developer.chrome.com/extensions/notifications.html

+0

謝謝,但正如我在我的代碼段中評論的那樣 - 我已經嘗試了chrome.windows.create()方法,並且它只在打開另一個窗口時纔打開一個新窗口。 – Chris

+0

在這種情況下,最好使用'chrome.notifications' API。 – boring

相關問題