如何确定Chrome窗口是否从Chrome扩展最小化
How to determine if Chrome Window is miniminzed from a Chrome Extension
我正在编写一个chrome扩展,想确定是否最小化了chrome窗口。在搜索stackoverflow.com时,我找到了以下解决方案,但它对我不起作用,我得到了一个错误:响应windows.get:TypeError:undefined不是chrome扩展的函数://。。。。。。
我的后台有以下代码.js
chrome.windows.onFocusChanged.addListener(function(windowId) {
if (windowId === -1) {
console.window("Minimized");
} else {
chrome.windows.get(windowId, function(chromeWindow) {
if (chromeWindow.state === "minimized") {
console.window("Minimized");
} else {
console.window("NOT Minimized");
}
});
}
});
是否有任何特殊权限,我应该添加到清单,以使上述代码工作?非常感谢您的帮助。
您的问题很明显:您在#3、#7和#9行做什么?没有这样的console.window()
函数。。。这就是为什么您会得到这个错误:因为对象console
的属性window
显然是未定义的。看起来你正在尝试记录一些信息,但你使用了错误的功能您想要的是console.log()
。
这是正确的代码:
chrome.windows.onFocusChanged.addListener(function(windowId) {
if (windowId === -1) {
console.log("Minimized");
} else {
chrome.windows.get(windowId, function(chromeWindow) {
if (chromeWindow.state === "minimized") {
console.log("Minimized");
} else {
console.log("NOT Minimized");
}
});
}
});
此外,引用文件:
当请求时,
windows.Window
将包含tabs.Tab
对象的数组。如果需要访问tabs.Tab
的url
、title
或favIconUrl
属性,则必须在清单中声明"tabs"
权限。
因此,如果您也想访问窗口的选项卡,则必须在清单中添加权限:
...
"permissions": [
"tabs", ...
],
...
注意:您永远不会将其记录到"Minimized"
,因为onFocusChanged
事件只在某个窗口聚焦时触发,而不是在失去焦点时触发。如果您想查看是否有任何窗口被最小化,您必须使用chrome.windows.getAll()
方法并在各个窗口上迭代,以检查它们是否被最小化。
附录:检查最小化了哪些窗口:
function doSomethingWithMinimizedWindows(windows) {
for (var i = 0; i < windows.length; i++) {
// do something with windows[i]
// for example:
console.log('Window #'+windows[i].id+' is minimized!');
}
}
chrome.windows.getAll(function(windows) {
var minimized = [];
for (var i = 0; i < windows.length; i++) {
if (windows[i].state === "minimized") {
minimized.push(windows[i]);
}
}
doSomethingWithMinimizedWindows(minimized);
});
上面的代码将产生如下内容:
Window #378 is minimized!
Window #457 is minimized!
Window #460 is minimized!
Window #463 is minimized!
相关文章:
- chrome扩展中的navigator.geolocation.getCurrentPosition
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- chrome扩展更改主机/域警告
- 如何在chrome扩展中重定向到html页面
- Chrome扩展没有't在重新加载之前考虑期权价值
- 如何通过自己获得Chrome扩展的用户反馈/错误报告
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- 从选项页面更新chrome扩展清单权限
- 如何将chrome扩展功能移植到移动设备(特别是jquery和trello)
- Chrome扩展:遍历不同的页面并收集数据
- 未捕获的类型错误:无法读取属性'addEventListener'的null chrome扩展名
- 可以从Chrome扩展修改窗口对象吗
- 从popup.js|Chrome扩展访问DOM
- 从Chrome扩展名中的popup.html文件在background.js文件中运行一个函数
- 在Chrome扩展内部输出Google API调用
- 检查是否存在使用chrome扩展的javascript库
- 从Chrome扩展访问Google Cloud SQL数据库
- Chrome扩展,Chrome.tabs.query的结果未定义
- 为tweet构建chrome扩展
- 在chrome扩展中使用AJAX获取目录中的文件数