gpt4 book ai didi

javascript - Chrome 将脚本注入(inject)上一个选项卡?

转载 作者:行者123 更新时间:2023-12-03 09:33:28 25 4
gpt4 key购买 nike

我正在开发一个带有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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com