Chrome 扩展:如何将 HTML 附加到新创建的 chrome 选项卡?

Chrome extension: How to append HTML to a newly created chrome tab?

我正在尝试从后台脚本打开一个新选项卡 background.js 并让这个新选项卡显示我在后台脚本中获得的一些文本。我正在使用 chrome.tabs.create({ url: "template.html" }); 使用 template.html 文件创建新选项卡,它只是一个空白的 HTML 模板:

<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Testing</title>
    </head>
    <body>
    </body>
</html>

background.js 中,我有一个名为 text 的变量,其中包含要添加到新标签页的文本,但我不确定如何附加它。

我认为它可能会在新标签页上执行脚本以附加文本,但是当我尝试 运行 我的脚本 template.jstemplate.html 上使用 chrome.tabs.executeScript(tab.id, {file: 'template.js'});,我收到以下错误:

Unchecked runtime.lastError while running tabs.executeScript: Cannot access contents of url "chrome-extension://*/template.html". Extension manifest must request permission to access this host.

因为新标签页有 URL chrome-extensions://*/template.html 扩展无法访问。

我不确定如何将文本或 HTML 添加到标签页。对此的任何帮助表示赞赏。谢谢。

您不能在 chrome-extension: 页面上使用 chrome.tabs.executeScript。唯一有效的方案是 http https file ftp.

总之,你不需要。您可以简单地将您想要 运行 的文件包含在带有脚本标签的 html 中。只需将以下内容添加到 template.html:

<script src="template.js"></script>

请注意,在诸如此类的扩展页面中,您可以访问完整的 chrome.* API,因此,例如,您可以使用消息传递在该页面和后台页面之间进行通信。