javascript - 有没有办法在 google chrome 扩展程序中增加变量而无需打开扩展程序?

标签 javascript html google-chrome google-chrome-extension google-chrome-devtools

我正在为我和我学校的人进行延期,为了不涉及太多细节,它会尝试保存您的类(class)并提前几个月告诉您即将到来的时间表。这一切都是可能的,因为我的学校实行“日间”制度。这意味着在“第一天”你可能会学习数学、科学、英语和体育,而在“第二天”你可能会学习历史、西类牙语等……你明白了。不管怎样,为了让这个扩展运行,我需要跟踪我所在的特定日期。只有当有人打开扩展程序时,这才有可能,该扩展程序运行脚本来检查一天是否已经过去,如果已经过去,则将增加变量。然而,我的问题是,有些人可能连续很多天都没有打开扩展,导致我的程序丢失了今天是哪一天,从而变得无用。因此,我需要一种方法让我的程序在后台增加天数,而无需打开扩展程序。我执行此操作的另一种方法是以某种方式计算出用户已经离开了多少天,并进行一些数学运算来找出应该是哪一天。

如果有人可以给我一些帮助,我将不胜感激。我在下面链接了一些代码。

当用户第一次登录我的程序时会发生这种情况,保存他们所在的星期几。

var today = new Date()
    localStorage.setItem('day-of-week', today.getDay())

每次加载扩展程序时,此“检查器”都会运行,如果它发现本地存储的星期几与现在的星期几之间有任何差异,它将增加学校“日”,然后存储新的“日”一周中的天。 (我的学校日制最多只能到 4,所以一旦达到 4,它就会回到 1)

function checkDate(prevDate) {
var today = new Date()
if (today.getDay() != prevDate) {
    day = parseInt(day)
    if (day == 4) {
        day = 1
    } else {
        day += 1
    }
    localStorage.setItem('day', day)
    localStorage.setItem('day-of-week', today.getDay())
}}

最佳答案

我认为采用不同的方法可能会为您解决该问题。 如果您知道学期的第一天(或作为日程安排引用点的任何日期),您可以将今天的日期与该日期进行比较。其功能可能类似于:

const scheduleLength = 4
const milsPerDay = 1000 * 60 * 60 * 24
const semesterStart = new Date('September 3, 2022 00:00:00');
function scheduleDay(day){
    var semesterDay = Math.floor( (day - semesterStart )/milsPerDay );
    return semesterDay % scheduleLength
}

此函数不考虑周末,因为我不确定您是否需要周末,但如果有必要,您绝对可以调整此函数以考虑周末。如果您确实需要这样做,我个人建议只重命名 semesterStart 变量并引用一周的开始。

为了确保它有效,我编写了一个简单的循环:

for ( let i = 3; i <= 11; i++ ) {
    var test = new Date('September '+i+', 2022 08:00:00')
    console.log( scheduleDay(test), test)
}

我得到了输出

> 0 Sat Sep 03 2022 08:00:00 GMT-0400 (Eastern Daylight Time)
> 1 Sun Sep 04 2022 08:00:00 GMT-0400 (Eastern Daylight Time)
> 2 Mon Sep 05 2022 08:00:00 GMT-0400 (Eastern Daylight Time)
> 3 Tue Sep 06 2022 08:00:00 GMT-0400 (Eastern Daylight Time)
> 0 Wed Sep 07 2022 08:00:00 GMT-0400 (Eastern Daylight Time)
> 1 Thu Sep 08 2022 08:00:00 GMT-0400 (Eastern Daylight Time)
> 2 Fri Sep 09 2022 08:00:00 GMT-0400 (Eastern Daylight Time)
> 3 Sat Sep 10 2022 08:00:00 GMT-0400 (Eastern Daylight Time)
> 0 Sun Sep 11 2022 08:00:00 GMT-0400 (Eastern Daylight Time)

关于javascript - 有没有办法在 google chrome 扩展程序中增加变量而无需打开扩展程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73676980/

相关文章:

javascript - 当元素向上滚动到页面顶部时,我想将元素的不透明度从 0 更改为 1

javascript - 如果 chrome 开发工具打开,AJAX 可以工作,但如果 chrome web 工具关闭,AJAX 就不能工作?

javascript - jquery:单击并拉动类似于 chrome 网上商店 slider

javascript - <{}> 在 javascript 的扩展末尾意味着什么?

javascript - 为什么jquery触发器动态更新后socket.emit会重复?

javascript - 函数.js :1 Uncaught SyntaxError: Unexpected token {

google-chrome - Chrome 何时将 0 以外的值传递给 --parent-window 的 native 消息传递主机?

html - IE兼容性, margin 问题

javascript - 根据值过滤对象属性

javascript - Meteor.js 使用 X509 证书身份验证连接到 Mongo