@forestsheep
2019-12-17T09:59:15.000000Z
字数 2042
阅读 396
学习
有三个区域并不是直接互通的,他们是
他们之间可以互通信息,但有一定的规则。
backgound范畴的项目如果运用localstorage储存东西,他们都会存到一个地方。
以下这些地址前面的部分都相同。
chrome-extension://ccfbnhhlemoobofbfakkgpggmaocldlk/_generated_background_page.html
chrome-extension://ccfbnhhlemoobofbfakkgpggmaocldlk/option.html
chrome-extension://ccfbnhhlemoobofbfakkgpggmaocldlk/popup.html
localstorage
只要在相同的协议、相同的主机名、相同的端口下,就能读取/修改到同一份localStorage数据。
前面已经讲过,chromestorage是改造过的localstorage,它在扩展内都是唯一的。
假设我们对bozuman进行了注入,不管是原生的网页还是注入好的contentscript他们所属的地址都是:
https://bozuman.cybozu.com/
所以他们注定使用同一份localstorage
不可直接传递的,可通过contentscript间接传递。
https://developer.chrome.com/extensions/alarms
// 描述何时应触发闹钟。
// 初始时间必须由when或delayInMinutes指定(但不能同时指定)。
// 如果设置了periodInMinutes,则闹钟将在初始事件后每隔periodInMinutes分钟重复一次。
// 如果没有为重复警报设置when或delayInMinutes,则将periodInMinutes用作delayInMinutes的默认值。
let alarmInfo = {
// when: Date.now(),
delayInMinutes: 10,
periodInMinutes: 1440
}
// 创建闹钟
chrome.alarms.create("myAlarm", object alarmInfo)
chrome.alarms.onAlarm.addListener(function(alarm) {
let delayms = getrandom(7)
if (alarm.name === "myalarm") {
// do something
}
})
基础:
刷新扩展1分钟后,在background打印hello world
提高:
打开kintone某app一条记录1分钟后,把此记录详细内容存到background的localstorage上。(不是chrome.storage)