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

Chrome Extension - Use javascript to run periodically, and log data permanently

本文关键字:运行 永久记录 数据 扩展 使用 javascript Chrome      更新时间:2023-09-26

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

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

Chrome将重复警报的频率限制为每分钟最多一次。如果可以的话,下面是如何做到的:

请参阅此处了解如何设置事件页面。

在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
            });
        }
    });
}