Javascript 打开chrome://newtab 从Chrome扩展

Javascript 打开chrome://newtab 从Chrome扩展,javascript,google-chrome-extension,Javascript,Google Chrome Extension,我尝试编写一个Google Chrome扩展,当我在短时间内点击左右键时,它会打开一个新的标签。JavaScript没有问题,但我将其实现为“content\u scripts”脚本 在其他一些线程中,我读到无法从content_脚本访问chrome.*API(chrome.extension API除外) 即使没有必要访问chrome.tabs API来打开一个新窗口(window.open应该可以完成这项工作),但我似乎需要它来打开一个带有新选项卡页面的新选项卡,而通过window.open

我尝试编写一个Google Chrome扩展,当我在短时间内点击左右键时,它会打开一个新的标签。JavaScript没有问题,但我将其实现为“content\u scripts”脚本

在其他一些线程中,我读到无法从content_脚本访问chrome.*API(chrome.extension API除外)

即使没有必要访问chrome.tabs API来打开一个新窗口(window.open应该可以完成这项工作),但我似乎需要它来打开一个带有新选项卡页面的新选项卡,而通过window.open显然是不可能的

所以我真的不知道最好的方法是什么。我可以使用一个背景页面,我可以从content_脚本调用它,但我认为应该有一个更简单的方法来实现这一点,我就是不明白


有人有主意吗?

我认为您的内容脚本必须向您的后台页面发送消息才能调用
chrome.tabs。创建
-内容脚本不能使用chromeapi,也不能直接与后台页面通信

下面是关于Chrome扩展内部消息传递的详细信息,但下面是示例代码(根据上述参考中的示例修改)

简单易行

document.body.onclick = function openNewWindow(  ) {
  window.location.href = 'javascript:void window.open( "chrome://newtab" )';
}
舱单:

,"permissions":[
    "http://*/*"
    ,"https://*/*"
  ]
  ,"manifest_version": 2
  ,"content_scripts":[{
    "matches":[
      "http://*/*"
      ,"https://*/*"
    ]
    ,"js":[
      "js/openWindow.js"
    ]
  }]

好吧,我不理解这个问题。。。修改后的

谢谢,这很好用。我曾想过使用事件页面,但我没能将它们输入我的大脑(可能是在德国凌晨2点)但这仍然让Chrome给了我一个关于启动的背景页面的通知。这对我来说其实没什么问题,但我想如果Chrome关闭,这个页面也会继续运行,这对于事件页面来说是绝对不必要的…@user2048874:后台页面将在每个会话中都有效,并且在会话关闭时会停止。抱歉,这不是我需要做的。正如我所说的,我特别想打开Chrome的新标签页chrome://newtab 这是通过window.open()无法实现的。我想我比我更喜欢这个解决方案-不必在消息传递方面胡闹是一个加号。感谢您的努力,但这仍然不起作用。也许我应该描述一下这个问题——一个窗口被打开了(我和你第一次尝试的方法一样),但是Chrome不会从window.open()打开新的标签页,而是一个about:空白页。这就是全部问题所在。:-)
,"permissions":[
    "http://*/*"
    ,"https://*/*"
  ]
  ,"manifest_version": 2
  ,"content_scripts":[{
    "matches":[
      "http://*/*"
      ,"https://*/*"
    ]
    ,"js":[
      "js/openWindow.js"
    ]
  }]