我正在开发一个带有background.js 文件和script.js 文件的Chrome 扩展程序,该文件将一些元素注入(inject)到页面的DOM 中。当用户离开选项卡时,我想将 script.js 文件注入(inject)到用户刚刚离开的选项卡(现在不可见)中。换句话说,用户从选项卡 A 切换到选项卡 B,script.js 被注入(inject)到选项卡 A 中。
我有代码在更新选项卡时注入(inject) script.js 文件,但它注入(inject)到事件选项卡而不是用户刚刚导航离开的选项卡。有什么想法吗?
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 中,将脚本注入(inject)该选项卡 id,并使用新事件选项卡的 id 更新变量。
关于javascript - Chrome 将脚本注入(inject)上一个选项卡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31414897/