我正在尝试从背景脚本background.js中打开一个新选项卡,并让这个新选项卡显示我在后台脚本中获得的一些文本。我使用chrome.tabs.create({ url: "template.html" });来使用template.html文件创建新的选项卡,这只是一个空白的template.html模板:
<html lang="en">
<head>
<meta charset="utf-8">
<title>Testing</title>
</head>
<body>
</body>
</html>在background.js中,我有一个名为text的变量,它包含要添加到新选项卡页面的文本,但我不知道如何添加它。
我以为它可以在新的选项卡页面上执行一个脚本来附加文本,但是当我尝试使用template.js在template.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附加到选项卡页。对此的任何帮助都很感激。谢谢。
发布于 2016-03-19 04:40:12
不能在chrome.tabs.executeScript页面上使用chrome-extension:。唯一有效的方案是http https file ftp。
不管怎么说你不需要这么做。您可以简单地将您想要在html中运行的文件包含一个脚本标记。只需将以下内容添加到template.html中:
<script src="template.js"></script>请注意,在这样的扩展页面中,您可以访问完整的chrome.* API,因此您可以使用消息传递在此页面和后台页面之间进行通信。
https://stackoverflow.com/questions/36096648
复制相似问题