gpt4 book ai didi

javascript - 检测是否已注入(inject) Chrome 扩展内容脚本/内容脚本包含 guard

转载 作者:数据小太阳 更新时间:2023-10-29 04:25:12 24 4
gpt4 key购买 nike

每当更新选项卡时,我想执行内容脚本函数。问题是,有时选项卡更新是 ajax(没有重新加载页面),同时仍在更改页面的 url。因此注入(inject)的旧内容脚本仍然存在于页面上。结果是在同一页面上注入(inject)并运行了多个内容脚本实例。

因此,我正在寻找一种机制来注入(inject)内容脚本,前提是之前没有注入(inject)过相同的内容脚本。有什么想法吗?

最佳答案

您可以尝试向内容脚本 (Message Passing) 发送消息。如果内容脚本成功返回响应,则意味着内容脚本已经存在,否则返回空响应,您可以检查空响应并注入(inject)内容脚本。

背景:

chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
chrome.tabs.sendMessage(tabs[0].id, {greeting: "hello"}, function(response) {
if (response) {
console.log("Already there");
}
else {
console.log("Not there, inject contentscript");
}
});
});

ContentScript:

chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
if (request.greeting == "hello")
sendResponse({message: "hi"});
});

关于javascript - 检测是否已注入(inject) Chrome 扩展内容脚本/内容脚本包含 guard,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18422987/

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