Google chrome extension 只需单击Chrome Extensions,即可打开网页上的所有链接

Google chrome extension 只需单击Chrome Extensions,即可打开网页上的所有链接,google-chrome-extension,Google Chrome Extension,我想打开一个网页上的所有链接与一个单一的点击铬扩展。我试过了,但没有得到任何结果。请帮帮我 my manifist.json文件: { "name": "Open Links in New Tabs", "version": "1.0", "description": "open all link in page on new tabs with one click", "background_page" : "background.html", "browser_actio

我想打开一个网页上的所有链接与一个单一的点击铬扩展。我试过了,但没有得到任何结果。请帮帮我

my manifist.json文件:

{
  "name": "Open Links in New Tabs",
  "version": "1.0",
  "description": "open all link in page on new tabs with one click",
  "background_page" : "background.html",
  "browser_action": {
    "default_icon": "icon.png"
  },

  "permissions": 
     ["tabs"],
  "manifest_version": 2
}
background.html文件:

<!doctype html>
<html>
  <head>
    <script src="background.js"></script>
  </head>
  <body>
  </body>
</html>

background.js文件:

for(i = 0; i < document.links.length; i++) 
{ chrome.tabs.create({active: true, url: document.links[i].href});}
for(i=0;i

请解释任何问题。谢谢

当您访问
background.js
中的
文档
对象时,您看到的是后台页面,而不是当前活动的选项卡

要访问打开页面的DOM内容,需要一个内容脚本。然后,它可以向后台脚本(可以访问
chrome.tabs
)发送一条消息,其中包含要打开的链接列表

请花点时间阅读这篇精彩的文章。此外,请继续阅读以传递列表

实际上,如果您打算通过
chrome.tabs.executeScript
以编程方式注入脚本,您可以放弃消息传递,只需使用


作为补充说明,由于后台页面中没有任何HTML,因此可以用自动生成的脚本页面替换它,如下所示:

manifest.json

"background": {
   scripts": ["background.js"]
},
代替
“背景页面”


最后,考虑您需要的最小权限。

如果您的扩展应该在单击扩展按钮(包装在
chrome.browserAction.onClicked
listener中)时触发,那么您可以“免费”注入脚本,无需使用选项卡/主机命令

chrome.tabs.create也一样,你不需要强大而可怕的“tabs”权限。

有很多

  • 后台脚本无权访问选项卡的页面DOM。它可以直接访问的唯一DOM是background.html的DOM。您应该使用内容脚本和消息传递
  • background\u page
    是清单版本1的一个选项,您正在使用清单版本2,该选项称为
    background
    。通常,您直接以脚本的形式提供
    background.js
    (请参阅)。您应该在实施这些建议后返回
  • 可能重复的