В настоящее время ваш скрипт является обычным скриптом, который выполняется внутри всплывающей страницы.
Просто потому, что он называется background.js, он волшебным образом не становится фоновым скриптом.
Реальный фоновый скрипт должен быть объявлен в manifest.json:
"background": {
"scripts": ["background.js"],
"persistent": false
}
Создает отдельную скрытую фоновую страницу (или страницу события при использовании "persistent": false
), где этот фоновый скрипт будет запускаться и будет иметь прямой доступ к DOM этой фоновой страницы ( не всплывающее окно). Чтобы проверить / отладить фоновый скрипт, щелкните фоновую страницу на странице расширений chrome: //, когда он находится в режиме разработчика: дополнительная информация .
Другая проблема заключается в том, что всплывающее окно существует только тогда, когда оно отображается, поэтому вам нужно будет найти другой способ показа таймера. Например, отдельное маленькое окно (открытое с помощью chrome.windows.create) или маленький текстовый значок на значке расширения (установленный с помощью chrome.browserAction.setBadgeText), примеры которого можно найти путем поиска в Google.