事實上,我只需要訪問sender.tab.id
腳本在backgroung頁:
var states = new Object();
chrome.extension.onRequest.addListener(
function(request, sender, sendResponse) {
if(request.method == "setState") {
states[sender.tab.id] = request.state;
sendResponse({});
} else if(request.method == "getState") {
var state = states[sender.tab.id];
sendResponse(state);
} else {
sendResponse({}); // snub them.
}
});
和代碼,我需要的內容腳本:
function saveState(state) {
chrome.extension.sendRequest({method: "setState", state: state}, function() {});
}
function restoreState() {
chrome.extension.sendRequest({method: "getState"}, doTheJob);
}
function doTheJob(state) {
// do the job
console.log(state);
var newState;
if(state==undefined || state==null) {
newState = { count: 1 };
} else {
newState = state;
newState.count++;
}
saveState(newState);
}
restoreState();
你這是什麼意味着製表符狀態,它的網址?您需要更詳細地描述您準備運行此腳本的時間以及您試圖保存的內容。 – serg
我想做一個像IMacro一樣的擴展。目標是自動執行場景。在某些情況下,我需要維護一個計數器,並且這個計數器需要在頁面之間獨立。 – Mobius
所以你只需要一個標籤ID?哪個選項卡適用於當前窗口中的一個或全部選項卡?你什麼時候需要它,在任何時候或當用戶點擊某個地方的東西時? – serg