目前我发短信从我的HTML页面,浏览器扩展程序,它,依次调用获取窗口ID与Chrome扩展的帮助
chrome.windows.getCurrent(function (win) {
callback(win.id)
});
得到窗口ID。但是如果用户在此次调用之前选择另一个(或打开新窗口)窗口,我会得到不正确的ID。我如何获得窗口的ID,我的js代码在哪里运行?
目前我发短信从我的HTML页面,浏览器扩展程序,它,依次调用获取窗口ID与Chrome扩展的帮助
chrome.windows.getCurrent(function (win) {
callback(win.id)
});
得到窗口ID。但是如果用户在此次调用之前选择另一个(或打开新窗口)窗口,我会得到不正确的ID。我如何获得窗口的ID,我的js代码在哪里运行?
在你的后台脚本,你可能会使用chrome.runtime.onMessage.addListener(function(message, sender, sendResponse){ ... }
在这种监听器,你可以用sender.tab.windowId
获得发送消息到后台脚本,无论当前活动窗口的窗口的ID。
这正是我需要的。 THANX! –
高兴地帮助:) –
什么时候你的应用程序正好在你运行这段代码? – vsync
我目前的test.html有setInterval,它将消息发布到扩展中以调用getCurrent并返回windowId。如果我打开新窗口,我在控制台中看到窗口ID已更改。这意味着getCurrent返回活动窗口,但不是test.html的窗口。 –
只存储消息应该发送到的最后一个id,如果当前的id不同,那么什么都不做?或者等到用户改回来..也许保留一个队列,哪个消息属于哪个窗口ID – vsync