选项卡.无法访问chrome:// URL

tabs.executeScript: Cannot access a chrome:// URL

本文关键字:URL chrome 访问 选项      更新时间:2023-09-26
chrome.tabs.executeScript(null, { file: "jquery.js" }, function() {
chrome.tabs.update(null, {url: 'https://example.com/'});
});

上面的代码工作时,我触发当我的地址栏有东西,意味着我在任何网页,但当我触发时,我的地址栏是空白的,我得到下面的错误:

Unchecked runtime.lastError while running tabs.executeScript: Cannot access a chrome:// URL
    at Object.callback 
  • 通常(参见文档中的编程注入)不可能将脚本注入具有chrome:// url的选项卡中,因为允许的方案是<scheme> := '*' | 'http' | 'https' | 'file' | 'ftp'

    在Chrome v61之前,仍然可以注入到新选项卡页面的内容框架中,其中您提到的"空白地址栏"在内部表示为chrome://newtab/。例如,主框架有一个这样的地址:https://www.google.com/_/chrome/newtab?espv=2&es_th=1&ie=UTF-8(使用devtools中的网络面板来检查url)。所以你的manifest.json会有"permissions": ["tabs", "https://www.google.com/_/chrome/newtab*"],

  • 或者你可以启用chrome://flags/#extensions-on-chrome-urls标志,但是这几乎没有用,因为Chrome每次启动都会显示警告。