tabs.executeScript:无法访问chrome:// URL

时间:2015-05-21 07:32:31

标签: javascript google-chrome google-chrome-extension

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 

1 个答案:

答案 0 :(得分:2)

  • 通常情况下(另请参阅文档中的Programmatic Injection),由于the allowed schemeschrome://,因此无法将脚本注入包含<scheme> := '*' | 'http' | 'https' | 'file' | 'ftp'网址的标签页。

    在v61之前的Chrome中,仍然可以在新标签页的内容框架中注入&#34;空白地址栏&#34;你提到的内容表示为chrome://newtab/。例如,主框架具有如下地址:https://www.google.com/_/chrome/newtab?espv=2&es_th=1&ie=UTF-8(使用devtools中的网络面板来检查网址)。因此,manifest.json会有"permissions": ["tabs", "https://www.google.com/_/chrome/newtab*"],

  • 或者您可以启用chrome://flags/#extensions-on-chrome-urls标记,但这并不重要,因为Chrome会在每次启动时显示警告。