Chrome扩展程序 - 使用javascript定期运行,并永久记录数据

时间:2016-03-26 22:05:17

标签: javascript database google-chrome google-chrome-extension

目前,我有一个脚本,当点击右上方托盘中的图像时(仅针对一个特定的允许网站),它会扫描页面HTML然后输出一些值。这种扫描和输出是单个JS文件中的一个函数,称为checkData.js。

即使用户没有主动使用选项卡但它是打开的,是否有可能自动让脚本每10秒运行一次并将数据记录到我稍后可以在扩展程序中访问的某个地方?这是因为页面HTML不断变化。我想我会使用警报或事件页面,但我不确定如何整合它。

1 个答案:

答案 0 :(得分:2)

Chrome会将重复闹钟的频率限制为每分钟最多一次。如果可以,这是如何做到的:

有关如何设置活动页面的信息,请参阅here

在background.js中你会做这样的事情:

// event: called when extension is installed or updated or Chrome is updated
function onInstalled() {
    // CREATE ALARMS HERE
    ...
}

// event: called when Chrome first starts
function onStartup() {
    // CREATE ALARMS HERE
    ...
}

// event: alarm raised
function onAlarm(alarm) {
    switch (alarm.name) {
        case 'updatePhotos':
            // get the latest for the live photo streams
            photoSources.processDaily();
            break;
        ...
        default:
            break;
    }
}

// listen for extension install or update
chrome.runtime.onInstalled.addListener(onInstalled);

// listen for Chrome starting
chrome.runtime.onStartup.addListener(onStartup);

// listen for alarms
chrome.alarms.onAlarm.addListener(onAlarm);

创建重复警报的方式如下:

// create a daily alarm to update live photostreams
function _updateRepeatingAlarms() {
    // Add daily alarm to update 500px and flickr photos
    chrome.alarms.get('updatePhotos', function(alarm) {
        if (!alarm) {
            chrome.alarms.create('updatePhotos', {
                when: Date.now() + MSEC_IN_DAY,
                periodInMinutes: MIN_IN_DAY
            });
        }
    });
}