后台脚本与内容脚本

时间:2016-09-15 13:28:40

标签: google-chrome google-chrome-extension google-chrome-app

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

现在这是我的问题,我在popup.html中有一个名为“save”的按钮,点击该按钮我想保存在一个窗口下的多个标签页中打开的所有网页网址。我怎样才能做到这一点? 我应该写一个内容或后台脚本吗?

对不起我的讽刺问题。我是chrome api的新手。任何帮助/建议?

1 个答案:

答案 0 :(得分:2)

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

popup.js中,只需致电chrome.tabs.query即可获取标签信息,包括网址(您需要在tabs中声明manifest.json权限)。如果要指定窗口ID,请使用WINDOW_ID_CURRENT或通过其他方式检索(取决于您的逻辑)

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