我一直在尝试浏览网页,但很难找到答案。我看到过一些网络扩展,如OneTab,当你点击“浏览器操作”按钮时,会打开本地index.html页面。有人知道如何让我的Chrome扩展在按下“浏览器操作”时打开index.html页面吗?
index.html
8ftvxx2r1#
你应该看看chrome.browserAction和chrome.runtime.getURL。manifest.json
{ "name": "Your Extension Name", "description": "Your Extension Description", "version": "0.1", "manifest_version": 2, "background": { "scripts": ["background.js"], "persistent": false }, "browser_action": { "title": "Your Browser Action Name" } }
字符串background.js
chrome.browserAction.onClicked.addListener(function () { chrome.tabs.create({ url: chrome.runtime.getURL("index.html") }); });
型
3zwtqj6y2#
有两种方法可以通过浏览器操作打开本地HTML页面。
manifest.json
"browser_action": { "default_icon" : "128.png", "default_popup" : "localPage.html", "default_title" : "localPage title" }
字符串
"background": { "scripts": ["background.js"] },
后台.js
chrome.browserAction.onClicked.addListener(function () { chrome.tabs.create({ url: chrome.runtime.getURL("localpage.html") }); });
93ze6v8z3#
你的问题似乎有两个部分
browserAction
chrome.browserAction.onClicked.addListener(function () { // Your code here });
您可以通过chrome.runtime.getURL("index.html")获取本地页面URL然后你可以使用chrome.tabs.create({ url: chrome.runtime.getURL("index.html") });打开本地的html页面。
chrome.runtime.getURL("index.html")
chrome.tabs.create({ url: chrome.runtime.getURL("index.html") });
mzmfm0qo4#
现有的答案已经过时,不再适用于Manifest版本3。在manifest.json中,你需要使用action和service_worker:
action
service_worker
{ ... "manifest_version": 3, "action": {}, "background": {"service_worker": "background.js"} }
字符串(Note你需要"action",即使它是空的。在background.js中,你需要使用chrome.action:
"action"
chrome.action
chrome.action.onClicked.addListener(() => { chrome.tabs.create({ url: chrome.runtime.getURL("index.html") }); });
4条答案
按热度按时间8ftvxx2r1#
你应该看看chrome.browserAction和chrome.runtime.getURL。
manifest.json
字符串
background.js
型
3zwtqj6y2#
有两种方法可以通过浏览器操作打开本地HTML页面。
1.弹出
manifest.json
字符串
2.在Google Chrome浏览器中作为普通页面
manifest.json
型
后台.js
型
93ze6v8z3#
你的问题似乎有两个部分
1.响应
browserAction
点击事件字符串
2.打开本地html页面
您可以通过
chrome.runtime.getURL("index.html")
获取本地页面URL然后你可以使用
chrome.tabs.create({ url: chrome.runtime.getURL("index.html") });
打开本地的html页面。mzmfm0qo4#
现有的答案已经过时,不再适用于Manifest版本3。
在manifest.json中,你需要使用
action
和service_worker
:字符串
(Note你需要
"action"
,即使它是空的。在background.js中,你需要使用
chrome.action
:型