基于浏览器的会话计时器

时间:2019-04-01 15:16:57

标签: javascript google-chrome-extension

我使用的是由我公司运营的带有会话计时器的网站。与服务器的任何交互都会重置它,或者可以手动触发它。我经常执行多项任务,并且不断退出帐户,失去了进度,因此我需要一个解决方案。

最初,我尝试通过Chrome扩展程序(例如Injector)插入JavaScript函数,以自动重置计时器。效果很好,但显然自动执行此操作存在安全性问题。

我想要的是经过一定时间不与网站进行交互后,会通过声音或视觉方式提醒我(某种方式吸引人,而不仅仅是在该选项卡上)。我尝试使用每隔 n 分钟就会发出一次警报的扩展程序,但是只有在我在该页面上进行最后一次交互后记得重置警报后,该方法才有效。所以我想知道,是否可以在代码注入扩展程序中放入一些JavaScript,使其在经过这么多分钟的不交互后闪烁屏幕或发出噪音?已经存在一个扩展程序,可以处理我找不到的扩展程序吗?

1 个答案:

答案 0 :(得分:1)

Injector 插件可以使用很长时间,您无需访问任何特定的chrome API,因为注入的脚本只能访问chrome API的subset

我没有完整的解决方案,但希望以下内容能以某种方式对您有所帮助, 这是我的处理方法:

创建一个browserAction 扩展程序。

在Manifest.json中

设置权限
"*://*/*"将允许在任何页面中注入javascript

  "permissions": [
     "tabs",
     "*://*/*" 
   ],

popup.js

  • 有一个弹出按钮,可以调用您的背景以启动当前标签页的计时器
  • onClick-> sendMessage到后台-“ StartTimer”和当前的tabId

background.js

  • 从弹出窗口中收听“ StartTimer”消息
  • 启动递归计时器(setTimeout)
  • 每X分钟:
    • 通过tabId查询标签实例
    • 检查url是否符合您的期望。
      • 突出显示该标签
      • 将窗口向前移
      • 向身体注入一些CSS不透明效果
      • play a sound()

我希望这会有所帮助:)a