簡體   English   中英

Chrome將腳本插入上一個標簽頁?

[英]Chrome inject script into previous tab?

我正在使用帶有background.js文件和script.js文件的Chrome擴展程序,該文件將一些元素注入頁面的DOM中。 當用戶離開選項卡導航時 ,我想將script.js文件注入到用戶剛剛離開的選項卡(現在不可見)中。 換句話說,用戶從選項卡A切換到選項卡B,並將script.js注入選項卡A。

我的代碼在選項卡更新時會注入script.js文件,但它會注入到活動選項卡中,而不是用戶剛剛離開的選項卡中。 有任何想法嗎?

chrome.tabs.onActivated.addListener(function(activeInfo) {
    chrome.tabs.get(activeInfo.tabId, function (tab) {
        injectScript(tab.id);
    });
});

chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, updatedTab) {
    chrome.tabs.query({'active': true}, function (activeTabs) {
        var activeTab = activeTabs[0];
        if (activeTab == updatedTab) {
            injectScript(activeTab.id);
        }
    });
});

function injectScript(id) {
    chrome.tabs.executeScript(id, {
            file: "script.js"
    }, function() {
        if (chrome.runtime.lastError) {
            console.error(chrome.runtime.lastError.message);
        }
    });
}

看來您可以將最近激活的選項卡的ID保存在全局變量中。 然后在onActivated中,將script注入該標簽頁ID,然后使用新激活的標簽頁ID更新變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM