gpt4 book ai didi

javascript - 如何确定 Chrome 窗口是否通过 Chrome 扩展程序最小化

转载 作者:行者123 更新时间:2023-11-28 00:54:16 25 4
gpt4 key购买 nike

我正在编写一个 Chrome 扩展程序,想要确定 Chrome 窗口是否已最小化。在搜索 stackoverflow.com 时,我找到了以下解决方案,但它对我不起作用,并且出现错误: Error in response to windows.get: TypeError: undefined is not a function at chrome-extension://..... .

我的background.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");
}
});
}
});

我是否应该在 list 中添加任何特殊权限才能使上述代码正常工作?非常感谢任何帮助。

最佳答案

你的问题几乎很明显:你在#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");
}
});
}
});

另外,引用文档:

When requested, a windows.Window will contain an array of tabs.Tab objects. You must declare the "tabs" permission in your manifest if you require access to the url, title, or favIconUrl properties of tabs.Tab.

因此,如果您还想访问 Windows 选项卡,则必须在 list 中添加权限:

...
"permissions": [
"tabs", ...
],
...

注意:您永远不会让它记录“最小化”,因为 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!

关于javascript - 如何确定 Chrome 窗口是否通过 Chrome 扩展程序最小化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26412095/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com