據我所知,這不能與當前Crosssrider API來完成!
您必須切換回非跨瀏覽器插件實施,
,以便您針對每個您定位的瀏覽器實施單獨的擴展。
例如在鉻擴展,使用chrome.windows.getAll
功能
chrome.windows.getAll(object getInfo, function callback)
獲得Windows的所有情況下,您會數數,識別每一個。 例如:
chrome.windows.getAll({populate : true}, function (window_list) {
var count = window_list.length; // You now have their count
for(var i=0; i<count; i++) {
var myWindow = window_list[i];
// Do whatever you want here !
}
});
而且不要忘記標籤清單中的權限!
{
...
"permissions": ["tabs"],
...
}
和火狐插件,使用nsIWindowMediator
類,調用它的getEnumerator
方法
var windowMediator = Components.classes["@mozilla.org/appshell/window-mediator;1"]
.getService(Components.interfaces.nsIWindowMediator);
var enumerator = windowMediator.getEnumerator(null); // returns an iterator of all windows
var count = 0;
while (enumerator.hasMoreElements()) {
var myWindow = enumerator.getNext();
count++;
// Do whatever you want here !
}
// You now have their count
而對於Safari瀏覽器擴展,可以使用safari.application.browserWindows
打開的所有窗口的數組,得到例如
var count = safari.application.browserWindows.length; // You now have their count
for(var i=0; i<count; i++) {
var myWindow = safari.application.browserWindows[i];
// Do whatever you want here !
}
我不是很清楚你爲什麼要識別窗口,什麼是用例?現代瀏覽器通常將標籤視爲窗口(以前稱爲「許多打開的窗口」現在是「許多打開的標籤」),並將它們作爲單獨的過程來實現。所以,真的,你只需要從你的評論中可以看出你已經設法獲得的標籤身份。 [免責聲明]我是Crossrider的員工 – Shlomo
感謝您的幫助。我想通過用戶按鈕點擊將用戶的瀏覽會話[當前打開的窗口和標籤]保存到雲/服務器,以便用戶可以離開/關閉他/她的瀏覽器/計算機,再次返回並開始瀏覽他/她離開。例如,當Chrome崩潰時,它會記住用戶的上一次會話,並在崩潰前重新打開所有窗口和標籤,以便用戶不必重新打開它們。在這種情況下,我不想在1窗口中保存/打開9個選項卡,但在窗口#1中選擇3個選項卡,在窗口2中選擇2個選項卡,並在窗口3中選擇4個選項卡。 – Ali007
有很多擴展/插件的場景,其中窗口跟蹤非常重要,我認爲Crossrider應該更新其API以支持瀏覽器窗口識別 –