我开发了一个Chrome扩展名,在我的Manifest文件中,权限是"permissions": ["tabs", "storage"]
。当应用程序发布时,它将权限显示为Replace the page you see when opening a new tab
和Read your browsing history
主要问题是,每次新的选项卡,它都会用我的扩展替换页面。
在我的background.js
文件中,我只使用tabs
API来获取当前选项卡的url,如下所示:
const getCurrentTab = async () => {
let queryOptions = { active: true, currentWindow: true };
let [tab] = await chrome.tabs.query(queryOptions);
const recipe = await fetchParsedRecipe(tab.url);
return recipe;
};
这个getCurrentTab
函数在tabs.onUpdated
和tabs.onActivated
中都被调用。
chrome.tabs.onUpdated.addListener(() => {
getCurrentTab();
});
chrome.tabs.onActivated.addListener(() => {
getCurrentTab();
});
如何确保在新选项卡的窗口中没有打开扩展?
发布于 2022-03-20 11:35:24
如果您不想用Chrome扩展清单v3中的页面替换新的Tab页面。您可以执行以下操作,这将只在单击“浏览器”按钮时打开HTML页面。并将当前选项卡URL返回到该页面(作为查询字符串)。
manifest.json
{
"name": "Open a new tab",
"action": {},
"manifest_version": 3,
"version": "0.1",
"description": "A click to open my own tab page",
"permissions": ["storage", "activeTab", "scripting"],
"background": {
"service_worker": "background.js"
},
"host_permissions": ["<all_urls>"]
}
background.js
chrome.action.onClicked.addListener((tab) => {
var newURL = chrome.runtime.getURL("tab.html");
chrome.tabs.create({ url: newURL + "?=" + tab.url });
});
https://stackoverflow.com/questions/71542944
复制相似问题