Браузерный сеанс таймера - PullRequest
0 голосов
/ 01 апреля 2019

Я использую сайт, управляемый моей компанией, у которого есть таймер сеанса. Любое взаимодействие с сервером сбрасывает его, или оно может быть инициировано вручную. Я многозадачен и продолжаю выходить из системы, теряя свой прогресс, поэтому мне нужно решение.

Изначально я пытался вставить функцию JavaScript через расширение Chrome (например, Injector), чтобы просто автоматически сбросить таймер. Это прекрасно работало, но, очевидно, есть проблемы с безопасностью при автоматическом выполнении.

То, что я хочу, это то, что после определенного промежутка времени без взаимодействия с сайтом предупредит меня либо звуком, либо визуально (что-то, привлекающее внимание, а не только на этой вкладке). Я пытался использовать расширения, которые выдают сигнал тревоги каждые n минут, но это работает, только если я помню, чтобы сбросить его после моего последнего взаимодействия на этой странице. Поэтому мне интересно, есть ли какой-нибудь JavaScript, который я могу добавить в расширение инжектора кода, которое будет мигать на моем экране или шуметь после стольких минут отсутствия взаимодействия? Уже существует расширение, которое может обрабатывать такие вещи, которые я просто не могу найти?

1 Ответ

1 голос
/ 06 апреля 2019

Плагин Injector будет работать так долго, что вам не нужно будет обращаться к какому-либо конкретному API Chrome, поскольку внедренный скрипт имеет доступ только к подмножеству API Chrome.

У меня нет полного решения, но я надеюсь, что следующее поможет вам как-то, вот как бы я поступил по этому поводу:

создать в браузере действие расширение.

установить разрешение в Manifest.json
"*://*/*" позволяет вводить JavaScript на любых страницах

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

в popup.js

  • есть кнопка инжектора, которая будет звонить на ваш фон, чтобы запустить таймер для текущей вкладки
  • onClick -> sendMessage to background - 'StartTimer' и текущий tabId

в background.js

  • прослушать сообщение «StartTimer» из всплывающего окна
  • запустить рекурсивный таймер (setTimeout)
  • каждые Х минут:
    • запросить экземпляр вкладки по tabId
    • проверьте соответствие URL тому, что вы ожидаете.

Надеюсь, это поможет:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...