我正在创建一个小的chrome扩展程序,我无法弄清楚我应该做些什么来检查窗口是否被最小化。
到目前为止,我一直在使用chrome.tabs.onActivated和chrome.tabs.query来监听标签更改并且按预期工作,但现在我的问题是我还需要知道浏览器窗口何时最小化。
chrome.tabs.onActivated.addListener(function() {
chrome.tabs.query({currentWindow: true, active: true}, function(tabs){
//do something
});
});
我也查看了onFocusChanged,但这似乎只适用于多个浏览器窗口。
如何检查浏览器窗口是否已最小化?
答案 0 :(得分:0)
如果您拥有窗口ID,那么很容易,您可以获得Window object:
chrome.windows.get(windowId, function(win){
if(window.state == "minimized") {
/* ... */
}
});
如果您需要当前窗口,请改为使用getCurrent
:
chrome.windows.getCurrent(function(win){
if(window.state == "minimized") {
/* ... */
}
});
答案 1 :(得分:0)
这是使用代码必须进入background.js文件:
//check for fcuse tab
chrome.windows.getCurrent(function(win){
targetWindow = win;
});
alert(targetWindow.state=='minimized');
alert(targetWindow.focused);
示例代码: 在 content.js 文件中:
chrome.runtime.sendMessage({
url: window.location.href,
name: `${lastmessage.name}`,
message: `${lastmessage.body}`
});
并将此代码放入 background.js 文件中:
var targetWindow = null;
chrome.runtime.onMessage.addListener(function (request, sender, sendResponse) {
console.log(request.message);
//check for fcuse tab
chrome.windows.getCurrent(function(win){
targetWindow = win;
});
alert(targetWindow.state=='minimized');
alert(targetWindow.focused);
//continu if
if(targetWindow.focused != false || targetWindow.state!='minimized')
return 0;
})
参考:https://developer.chrome.com/docs/extensions/reference/tabs/#type-TabStatus