Google chrome extension 运行tabs时未选中runtime.lastError.executeScript:无法访问url的内容;数据:text/html,chromewebdata“;

Google chrome extension 运行tabs时未选中runtime.lastError.executeScript:无法访问url的内容;数据:text/html,chromewebdata“;,google-chrome-extension,Google Chrome Extension,我得到了这个错误: extensions::lastError:133 Unchecked runtime.lastError while running tabs.executeScript: Cannot access contents of url "data:text/html,chromewebdata". Extension manifest must request permission to access this host. 我在禁用internet后出现此错误,以便在页面加

我得到了这个错误:

extensions::lastError:133 Unchecked runtime.lastError while running tabs.executeScript: Cannot access contents of url "data:text/html,chromewebdata". Extension manifest must request permission to access this host.
我在禁用internet后出现此错误,以便在页面加载失败(由于重载)或internet关闭时采取措施

我已经检查了所有类似的问题,但仍然无法让它工作。有评论说Chrome不允许劫持内部页面

我的权限如下所示:

"permissions": [
        "tabs","unlimitedStorage", "notifications", "history", "activeTab", "storage", "webRequest", "webRequestBlocking", "*://*/*", "http://*/*", "https://*/*"
    ],
我在运行此代码时遇到错误:

chrome.tabs.executeScript(null, {file: "showbacklink.js"});

其中details.tabId是活动选项卡

我错过了什么?

编辑的manifest.json

{
    "name": "",
    "options_page": "options.html",
    "description": "",
    "version": "1.0",
    "icons": {
        "16": "icons/logo16.png",
        "48": "icons/logo48.png",
        "128": "icons/logo128.png"
    },
    "permissions": [
        "tabs","unlimitedStorage", "notifications", "history", "activeTab", "storage", "webRequest", "webRequestBlocking",  "http://*/*", "https://*/*"
    ],
    "background": {
        "scripts": [
        "showbacklink.js",
            "client_server_common.js",
            "common.js",
            "background.js"

        ],
        "persistent": true
    },

    "content_security_policy": "script-src 'self'; object-src 'self'",
    "manifest_version": 2,
    "content_scripts": [
        {
            "run_at": "document_end",
            "all_frames": true,
            "matches": ["https://*/*"],
            "css": [//REMOVED],
            "js": [   //other files REMOVED
                "myscript.js",

            ]
        },


    ],
    "web_accessible_resources": [  //REMOVED
    ]


}
事实上,“脱机”页面或显示的任何其他错误页面被视为Chrome内部页面,而不是其“原始”URL。同样地,出于安全原因,您不能插入这些页面来更改它们。想象一下,一个扩展能够与SSL警告页面交互——你真的,真的不想这样

如果您的目标是提供某种可选的错误页面,那么您需要为此类导航错误钩住一个侦听器,并重定向到您自己的页面


我建议你看看
webNavigation
webRequest
API。

你有没有试过追随海原Ai的脚步<代码>chrome.tabs.query({active:true,currentWindow:true},函数(tabs){for(var i=0;i@user5858,您可以发布整个
manifest.json
文件吗?您希望您的
showbacklink.js
插入哪个页面?@haibarai我想将带有
showbacklink.js
的代码插入到内容脚本或网页挂钩中,顺便说一句,用于处理最后的错误,在此错误期间使用为他们提供一个链接,他们应该单击该链接以重新启动到步骤1。目前,我已在弹出窗口中添加了此链接,但用户需要单击选项图标。如果您有一个链接,并且显示一些替换错误页面,您可以在那里使用该链接。您的意思是将页面重定向到某个自定义页面?这是我希望避免的原始错误或/问题可能会从用户的视线中消失。最好是在错误页面中插入一个链接,以便用户能够意识到错误并立即单击可能的修复链接。在任何情况下,您所要求的都是不可能的。@Xan,数据:text/html也用于其他用途,而不仅仅用于chrome内部网页。
{
    "name": "",
    "options_page": "options.html",
    "description": "",
    "version": "1.0",
    "icons": {
        "16": "icons/logo16.png",
        "48": "icons/logo48.png",
        "128": "icons/logo128.png"
    },
    "permissions": [
        "tabs","unlimitedStorage", "notifications", "history", "activeTab", "storage", "webRequest", "webRequestBlocking",  "http://*/*", "https://*/*"
    ],
    "background": {
        "scripts": [
        "showbacklink.js",
            "client_server_common.js",
            "common.js",
            "background.js"

        ],
        "persistent": true
    },

    "content_security_policy": "script-src 'self'; object-src 'self'",
    "manifest_version": 2,
    "content_scripts": [
        {
            "run_at": "document_end",
            "all_frames": true,
            "matches": ["https://*/*"],
            "css": [//REMOVED],
            "js": [   //other files REMOVED
                "myscript.js",

            ]
        },


    ],
    "web_accessible_resources": [  //REMOVED
    ]


}