Chrome扩展程序将数据从background.js传递到新标签页

时间:2019-11-07 20:04:33

标签: google-chrome-extension

在我的chrome扩展程序中,我想显示一个页面,其中包含用户的一些使用情况统计信息。我一直在尝试通过在background.js中创建一个新标签来显示HTML页面来解决此问题:

chrome.tabs.create({
    url: '/results.html',
    active: true
});

results.html如下所示:

<!DOCTYPE html>
<html lang='en'>
<head>
  <script src='js/charts.js'></script>
</head>
<body>
  <canvas id='myChart' style='height:400px; max-width:800px; background-color:red;'></canvas>
  </body>
  <script src='js/results.js'></script>
</html>

问题在于,然后我需要将实际使用情况数据从background.js页面传递到这个新的results.html页面。我唯一想到的就是添加另一个附加到results.html页面的内容脚本。

"content_scripts": [
    {
        "matches": [
            "*://*.results.html"
        ],
        "js": ["js/results_content.js"],
        "run_at": "document_idle"
    }
]

这似乎不起作用,否则,我可以让后台页面通过results_content.js脚本发送数据并显示图表。

我能想到的唯一另一个想法是,打开一个新标签至obscurewebsite.com并拥有一个内容脚本,该脚本执行类似document.body.innerHTML = ""的操作,并仅使用javascript来重建我的页面。我不喜欢这种解决方案。

是否可以通过chrome.tabs引用传递信息?还是另一种传递数据的方式?任何帮助表示赞赏。

0 个答案:

没有答案