2017-04-11 87 views
0

假装我有一个chrome扩展程序,它有一句话。每天我都会有一个新单词,并且我的扩展程序突出显示那天在浏览器中加载的任何页面上的单词。我可以有一个旋转的单词列表,但我想在我的网站上保留该列表,以便根据新闻或时事轻松更改。Chrome扩展程序自动提取并存储数据

如何让我的扩展程序每隔X小时获取服务器上文件的内容并将其保存为将来使用的变量?

+0

https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch https://developer.chrome.com/extensions/alarms –

回答

1

您需要为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,来存储数据。您可以稍后从内容脚本中检索它。