你的問題幾乎是顯而易見的:你在線#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'選項卡,你就必須添加您的清單中的許可:
...
"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.windows.getAll()感謝您的時間,我真的很感激你的幫助。 – bluenile 2014-10-16 19:48:00
@bluenile編輯我的答案,希望這有助於。如果是這樣,請考慮將其標記爲正確,以便讓其他人輕鬆找到它。 – 2014-10-16 19:58:58
非常感謝,謝謝完美:) – bluenile 2014-10-16 20:00:15