回答
你可以嘗試添加一個勾入標籤的onSelected事件,只是保存該變量... soemthing這樣的:
var curTabID = 0;
var curWinID = 0;
chrome.tabs.onSelectionChanged.addListener(function(tabId, selectInfo) {
curTabID = tabId;
curWinID = selectInfo.windowId;
});
然後你有窗口ID和標籤ID在任何時候。
+1謝謝,這似乎很好。 – Lorin 2011-12-31 17:24:31
嗯,我檢查了這個和功能chrome.tabs.onSelectionChanged返回新標籤的tabID,不舊。 例如,我有兩個選項卡 - 第一個(ID = 1)和第二個(ID = 2)。如果我將選擇從第一個選項卡更改爲第二個選項卡,我將得到ID 2不是1. – Lorin 2011-12-31 18:21:33
確切地說是預期的,onSelectChanged會告訴你它何時更改,在此函數的開始時,curTabID將使用舊ID和tabId作爲新ID 。如果你想跟蹤所有的標籤和他們使用的順序,只需使用數組並推送()ID,而不是像我一樣設置它們。 – Hogan 2012-01-01 06:19:34
我認爲你應該使用chrome.windows.getCurrent函數來獲取當前窗口和chrome.tabs.query函數來獲取這個窗口中的活動標籤。
下面是一個例子(腳本從背景頁):
chrome.windows.getCurrent(
function(win) {
// win is a Window object referencing the current window
chrome.tabs.query({'windowId': win.id, 'active': true},
function(tabArray) {
// tabArray is a Tab Array referencing active tab(s)
}
);
}
);
注意:Hogan的代碼是基於事件的,而這個不是。 – 2011-12-31 17:26:12
我認爲基於事件的代碼更好,因爲它在每次事件觸發後都會再次運行。問題是兩個代碼都會重新編號當前標籤。我需要從該標籤中選擇的標籤ID。 – Lorin 2011-12-31 18:24:35
然後,您應該重新構思您的問題...... – 2012-01-01 11:49:53
說明:此答案對提問者無效,但我認爲這對於即將到來的Firefox開發人員可能有所幫助,因爲Firefox現在與Chrome共享相同的api。
Firefox webextension程序員不必跟蹤他們自己的標籤。他們可以查詢它像這樣反而,由於LastAccessed屬性:
chrome.tabs.query({
active: false
}, (tabs) => {
let tab = tabs.reduce((previous, current) => {
return previous.lastAccessed > current.lastAccessed ? previous : current;
});
// previous tab
console.log(tab);
});
編輯:值得一提的是,如果在後臺創建一個新的選項卡中的lastAcessed時間戳也被設置。所以這種方法並不完美,因爲在後臺打開的選項卡將被視爲最後訪問的選項卡。
- 1. 從Chrome擴展程序的Javascript中獲取標籤網址
- 2. Chrome擴展程序:獲取活動標籤的源代碼
- 3. Chrome擴展程序 - 獲取標籤預覽圖像
- 4. Chrome擴展程序:讀取標籤之間的文本
- 5. 從Chrome擴展中獲取Chrome標籤頁pid
- 6. Chrome擴展:創建標籤
- 7. Chrome擴展 - 新標籤
- 8. 如何從Google Chrome擴展程序獲取當前標籤的網址?
- 9. 獲取Chrome擴展程序中選項卡中標記的值
- 10. 從Chrome應用獲取Chrome擴展程序列表
- 11. 使用Chrome擴展程序中的網址獲取頁面的標題
- 12. Chrome擴展程序:onclick擴展名圖標,在新標籤頁中打開popup.html
- 13. Chrome擴展程序獲取所有元素並使用它們
- 14. 使用Chrome擴展程序獲取當前網址
- 15. 獲取URL在IFRAME/Chrome擴展程序獲取的AJAX出
- 16. Chrome擴展程序
- 17. 使用jQuery的Chrome擴展程序
- 18. 使用Unsplash API的Chrome擴展程序
- 19. Chrome擴展程序:如何根據標題刷新標籤?
- 20. 租用Chrome擴展程序?
- 21. Chrome擴展程序:如何更改標籤焦點上的圖標?
- 22. 控制Chrome擴展程序中的標籤頁
- 23. 在Chrome應用程序中使用Chrome擴展程序
- 24. 谷歌瀏覽器擴展程序獲取新標籤頁ID
- 25. Chrome擴展程序使用報告
- 26. Chrome擴展圖標://擴展/
- 27. Chrome擴展程序自定義光標
- 28. Chrome擴展程序圖標不顯示
- 29. Chrome擴展程序 - onclick圖標事件
- 30. Chrome擴展使鼠標點擊擴展
如果您使用jQuery UI標籤...每個標籤都有其標識。你的系統是這種情況嗎?意思是一個選項卡有其獨特的ID? – samach 2011-12-31 15:28:10
Chrome擁有自己的API,因此我可以選擇當前窗口中的所有選項卡(使用它們的ID,標題等)。 例如,我有彈出窗口(瀏覽器操作)與鏈接到某個頁面。關閉此頁面後(或幾秒鐘後),我想選擇用戶來自哪個標籤。 我需要的一切都是算法或函數來選擇(查找)上次使用的選項卡。 **更新:**我找到了[此擴展程序](https://chrome.google.com/webstore/detail/nikomkkhhpfoeamojhhgpfkpkdlfhfii),它可以完全符合我的要求,但我找不到那段代碼去做。 – Lorin 2011-12-31 15:40:28