2016-07-24 57 views
1

目前我发短信从我的HTML页面,浏览器扩展程序,它,依次调用获取窗口ID与Chrome扩展的帮助

chrome.windows.getCurrent(function (win) { 
    callback(win.id) 
}); 

得到窗口ID。但是如果用户在此次调用之前选择另一个(或打开新窗口)窗口,我会得到不正确的ID。我如何获得窗口的ID,我的js代码在哪里运行?

+0

什么时候你的应用程序正好在你运行这段代码? – vsync

+0

我目前的test.html有setInterval,它将消息发布到扩展中以调用getCurrent并返回windowId。如果我打开新窗口,我在控制台中看到窗口ID已更改。这意味着getCurrent返回活动窗口,但不是test.html的窗口。 –

+0

只存储消息应该发送到的最后一个id,如果当前的id不同,那么什么都不做?或者等到用户改回来..也许保留一个队列,哪个消息属于哪个窗口ID – vsync

回答

4

在你的后台脚本,你可能会使用chrome.runtime.onMessage.addListener(function(message, sender, sendResponse){ ... }

在这种监听器,你可以用sender.tab.windowId获得发送消息到后台脚本,无论当前活动窗口的窗口的ID。

+0

这正是我需要的。 THANX! –

+0

高兴地帮助:) –