Chrome扩展程序自动提取和存储数据

时间:2017-04-11 22:23:33

标签: google-chrome google-chrome-extension

假装我的Chrome扩展程序中包含当天的单词。每天我都会有一个新单词,我的扩展程序会在当天浏览器中加载的任何页面上突出显示该单词。我可以有一个旋转的单词列表,但我想在我的网站上保留该列表,以便我可以根据新闻或当前事件轻松更改它。

如何让我的扩展程序每隔X小时获取一次文件内容,并将其保存为变量以备将来使用?

1 个答案:

答案 0 :(得分:2)

您需要为background.js中的请求保留类似计时器的内容。 正如Daniel建议的那样,最简单的方法是使用chrome.alarms API。

例如:

<强>的manifest.json

{
  "manifest_version": 2,
  "name": "My Extension",
  "version": "1.0.0",
  "background": {
    "scripts": [
      "background.js"
    ],
    "persistent": false
  },
  "permissions": [
    "alarms",
    "storage"
  ]
}

<强> background.js

chrome.alarms.onAlarm.addListener(alarm => {
    fetch('http://your_website_here')
        .then(response => response.text())
        .then(textResponse => {
            chrome.storage.local.set({data: textResponse});
        })
        .catch(e => {console.error(e)})
});

chrome.alarms.create('fetch_data', {
    periodInMinutes: 60 //every hour
});

我建议您使用chrome.storage API来存储您的数据。您可以稍后从内容脚本中检索它。