如何从网页打开Chrome扩展选项页面?

9
我的 Chrome 扩展有一个内容脚本,它使用以下代码将 HTML 注入页面: content_scripts
var optionsUrl = chrome.extension.getURL("src/options/options.html"); 
var content = '<a href="' + optionsUrl + '" target="_blank">Options</a>';

这将产生以下结果:
 <a href="chrome-extension://gdocgfhmbfbbbmhnhmmejncjdcbjkhfc/src/options/options.html" target="_blank">Options</a>

当我点击链接时,它会打开一个新的浏览器标签页,但没有其他反应
如果我将href属性chrome-extension://gdocgfhmbfbbbmhnhmmejncjdcbjkhfc/src/options/options.html粘贴到地址栏中,我可以正常显示Chrome扩展程序的选项页面。
  • 为什么链接无法工作?
  • 是否有一些额外的权限我需要添加?
2个回答

21
在清单文件中插入以下内容:
"web_accessible_resources": ["src/options/options.html"],

更多信息请参见 文档


2
节省了我很多时间,我为此疯狂了很久 :) - Kevin

1

升级 Manifest v3。以下方法对我有效:

  "web_accessible_resources": [
    {
      "resources": [ "options.html" ],
      "matches": ["<all_urls>"]
    }
  ]

进一步说,我通过以下方式在内容脚本中触发选项页面:
  `chrome-extension://${chrome.runtime.id}/options.html`

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接