2013-09-24 76 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

相关问题