后台脚本与内容脚本

Background scripts vs Content Scripts

我正在尝试开发一个 chrome 扩展程序,它可以保存在所有选项卡中打开的 url 网页,然后在需要时加载它们。现在我知道内容脚本、背景脚本和 popup.js。内容脚本主要处理加载网页的内容,它们chrome api交互较少,后台脚本在隔离环境中执行,我们可以使用所有chrome api方法,popup.js 只是在 popup.html.

的上下文中运行的 javascript

现在这是我的问题,我在 popup.html 中有一个名为 "save" 的按钮,单击该按钮我想保存在多个选项卡中打开的所有网页 url低于一 window。我怎样才能做到这一点? 我应该写内容还是背景脚本?

抱歉我的问题。我是 chrome api 的新手。任何 help/suggestions?

不需要内容脚本或背景页面。您可以在 popup.js 中执行此操作,因为弹出页面实际上在与扩展名相同的上下文中运行。

在你的popup.js中,只需调用chrome.tabs.query to get tab info, including url (you would need to declare tabs permissions in manifest.json). If you want to specify window id, either use WINDOW_ID_CURRENT或通过其他方式检索(取决于你的逻辑)

chrome.tabs.query({ windowId: YOUR_WINDOW_ID }, (tabs) => {
    tabs.forEach((tab) => console.log(tab.url));
});