如何链接到 chrome 扩展中的选项页面?

Posted

技术标签:

【中文标题】如何链接到 chrome 扩展中的选项页面?【英文标题】:How do you link to the options page in a chrome extension? 【发布时间】:2013-01-29 14:03:49 【问题描述】:

我有一个带有 options page 的 chrome 扩展程序。选项页面可以正常工作,我可以从扩展页面访问它,但是我还希望在我的扩展弹出窗口中有一个指向它的链接。这可能吗?它似乎没有网址,但有没有办法告诉 chrome 链接到扩展选项?

【问题讨论】:

【参考方案1】:

自 Chrome 42 以来的新方法:

chrome.runtime.openOptionsPage() 将打开选项,无论是使用新样式的嵌入选项还是旧样式的选项页面。

chrome.runtime.openOptionsPage() 将始终打开规范位置,并且具有很好的行为,例如重新聚焦打开的选项页面(如果有)。

【讨论】:

感谢您指出这一点!我即将遇到有关新选项样式的错误文档。 文档服务器连续 3 周没有收到文档更新(已经在代码库中)太奇怪了。我就此事联系了卡尔曼。 值得注意的是,这似乎不适用于按钮等嵌入式元素。 @BradJohnson 也许您正在尝试使用内联onclick,这是不允许的。 我使用 document.createElement 构建了按钮并附加了点击事件监听器。没有快乐。【参考方案2】:

您可以让 Chrome 在新标签页中打开您的扩展程序的选项页面,使用如下方式:

chrome.tabs.create('url': "/options.html"  )

与 HTML 很相似,URL 被认为是相对于调用页面的,但您可以使用正斜杠来加载相对于扩展程序根目录的页面。

更新:

如果你想从内容脚本打开选项页面,你必须使用这个方法: How do you open Chrome extension options page from a web page?

【讨论】:

我在 content script 中收到了Uncaught TypeError: Cannot call method 'create' of undefined。看起来像I can't do that。除非再次编辑答案,否则我也无法投票给你。 如果您想避免将 Web 可访问资源添加到清单文件中,您可以从内容脚本向后台页面发送消息。使用消息可能更符合扩展的最初设计方式。【参考方案3】:

你可以直接在html中使用相对链接:

<a href="options.html" target="_blank">Options</a>

【讨论】:

这不起作用,特别是如果它已嵌入网页中。此时,它采用默认域并将其作为 options.html 的前缀。例如:localhost/options.html 你想要的 Chrome-extension://sfj2jngijnei2f9b2f9bbkbe/options.html 只能通过 chrome API 获得。 chrome.extension.getURL('options.html')

以上是关于如何链接到 chrome 扩展中的选项页面?的主要内容,如果未能解决你的问题,请参考以下文章

如何链接到 Google Chrome 扩展程序的本地图像?

当我不是开发人员时,如何链接到Chrome网上应用店中的Chrome扩展程序?

上传文件在 Chrome 扩展选项页面中不起作用

如何同步 chrome 扩展选项

如何与电子中的chrome扩展背景页面通信?

如何切换到 Selenium 中的活动选项卡?