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
]
}