我正在開發所有瀏覽器的擴展。如何在會話中存儲特定於選項卡的值?我用一個NSISessionStore對象在Firefox中解決了這個問題。在Safari和Google Chrome中,我使用了SessionStorage;此對象存儲具有特定域的特定選項卡的值。我想要一個解決方案來存儲特定選項卡的值。如何爲Chrome和Safari擴展的特定標籤存儲值?
0
A
回答
0
如果您要問如何在選項卡的整個生命週期中管理數據,只需在創建時爲選項卡創建一個對象,並在關閉時將其刪除。
// Create data store
var tabDataStore = {};
// Create listeners
chrome.tabs.onCreated.addListener(function (tab) {
tabDataStore['tab_' + tab.id] = {
urls: []
};
});
chrome.tabs.onRemoved.addListener(function (tabId) {
delete tabDataStore['tab_' + tabId];
});
// Save something against that tab's data
function saveUrl(tab) {
tabDataStore['tab_' + tab.id].urls.push(tab.url);
}
// Load something from tab's data
function loadOriginalUrl(tab) {
tabDataStore['tab_' + tab.id].urls[0];
}
但是,這是一個假設,你可能想要一些完全不同的東西。另外,它取決於何時以及你想要存儲什麼。
有關選項卡的更多信息,請參見official documentation。
如果你想堅持任何你可以使用的東西localStorage。
+0
請注意,此解決方案是Chrome特定的。 – Brian
0
一個簡單的方法來做到這一點,雖然不是很理想,因爲它會顯得凌亂。將這些值存儲在URL哈希
說標籤的網址是http://whatever.com/ 你可以在值存儲在哈希像這樣 http://whatever.com/#value1=12&value2=10&value3=15212
也將有一個問題,如果網站使用了anyhting哈希對象,如「頁面」錨,或ajaxy類型的東西
0
Safari的回答
在全局頁面直接保存到標籤..所以例如在消息從注入腳本
// global page
safari.application.addEventListener("message", function(event){
switch(event.name){
case "saveData":
event.target.page.tabData = { data: myData }
break;
case "getData":
event.target.page.dispatchMessage("tabData", myData);
break;
}
}, false);
-
// injected page
// first save data
safari.self.tab.dispatchMessage("saveData", {firstname:"mike", age: 25});
// setup listner to recevie data
safari.self.addEventListener("message", function(event){
switch(event.name){
case "tabData":
// get data for page
console.debug(event.message);
// { firstname: "mike", age: 25 }
break;
}
}, false);
// send message to trigger response
safari.self.tab.dispatchMessage("getData", {});
相關問題
- 1. Chrome擴展存儲:設置/獲取值
- 2. Chrome擴展 - 新標籤
- 3. Chrome擴展:創建標籤
- 4. Chrome擴展程序和本地存儲
- 5. Chrome擴展爲書籤
- 6. 如何通過chrome擴展來存儲用戶特定的數據
- 7. Chrome擴展標籤頁網頁圖標
- 8. Chrome擴展圖標://擴展/
- 9. 如何在webstore中爲Chrome擴展製作標籤
- 10. 如何爲所有標籤重複此代碼? Chrome擴展
- 11. Chrome擴展中的隱形標籤
- 12. 帶有標籤的Chrome擴展程序
- 13. 如何爲Chrome擴展程序存儲多個選項?
- 14. 谷歌Chrome擴展如何檢查存儲是否爲空?
- 15. Chrome擴展上的本地存儲
- 16. 如何在Safari擴展中將具有非域的特定選項卡的值存儲?
- 17. Chrome擴展關閉或更新標籤
- 18. Chrome擴展標籤onUpdated事件
- 19. 在Chrome擴展引導標籤彈出
- 20. Chrome擴展程序:如何根據標題刷新標籤?
- 21. 來自特定域的chrome擴展塊
- 22. 在Chrome擴展中存儲圖像
- 23. Chrome擴展替代本地存儲?
- 24. Chrome擴展程序數據庫存儲
- 25. Chrome擴展存儲大量數據
- 26. Chrome擴展 - 爲
- 27. Chrome擴展程序:如何獲取標籤中的元素?
- 28. Chrome擴展到河套緊密的,非指定的標籤
- 29. 如何存儲Google Chrome擴展程序的偏好設置?
- 30. 如何從Chrome擴展的存儲API訪問多個鍵
能否請你改寫這是它很難真正理解你的想知道。 – Alasdair