要让注入的JavaScript只运行一次,可以使用Chrome扩展的消息传递机制来实现。具体步骤如下:
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
if (changeInfo.status === 'complete') {
chrome.tabs.sendMessage(tabId, {action: 'runOnce'}, function(response) {
// 接收来自选项卡的响应消息
});
}
});
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
if (request.action === 'runOnce') {
// 执行只需要运行一次的操作
// 将自身从消息监听列表中移除
chrome.runtime.onMessage.removeListener(arguments.callee);
}
});
这样,当选项卡加载完成时,Background.js会向选项卡发送消息,注入的JavaScript会接收并执行相应的操作。在第一次运行后,自身会从消息监听列表中移除,确保只运行一次。
推荐腾讯云相关产品:云服务器(ECS)和云函数(SCF)。
领取专属 10元无门槛券
手把手带您无忧上云