首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >新标签中的Chrome扩展打开

新标签中的Chrome扩展打开
EN

Stack Overflow用户
提问于 2022-03-19 23:41:19
回答 1查看 674关注 0票数 0

我开发了一个Chrome扩展名,在我的Manifest文件中,权限是"permissions": ["tabs", "storage"]。当应用程序发布时,它将权限显示为Replace the page you see when opening a new tabRead your browsing history

主要问题是,每次新的选项卡,它都会用我的扩展替换页面。

在我的background.js文件中,我只使用tabs API来获取当前选项卡的url,如下所示:

代码语言:javascript
运行
复制
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.onUpdatedtabs.onActivated中都被调用。

代码语言:javascript
运行
复制
chrome.tabs.onUpdated.addListener(() => {
    getCurrentTab();
});

chrome.tabs.onActivated.addListener(() => {
    getCurrentTab();
});

如何确保在新选项卡的窗口中没有打开扩展?

EN

Stack Overflow用户

发布于 2022-03-20 11:35:24

如果您不想用Chrome扩展清单v3中的页面替换新的Tab页面。您可以执行以下操作,这将只在单击“浏览器”按钮时打开HTML页面。并将当前选项卡URL返回到该页面(作为查询字符串)。

manifest.json

代码语言:javascript
运行
复制
{
  "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

代码语言:javascript
运行
复制
chrome.action.onClicked.addListener((tab) => {
  var newURL = chrome.runtime.getURL("tab.html");
  chrome.tabs.create({ url: newURL + "?=" + tab.url });
});
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71542944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档