manifest.json
{ "manifest_version": 2, "name": "App name", "description": "Description goes here", "version": "1.0", "background": { "scripts": ["background.js"] }, "permissions": [ "tabs", "alarms" ], "browser_action": { "default_icon": "icon.png", "default_popup": "popup.html" } }
I trying to create a function to make a popup “great” every minute like this:
chrome.alarms.onAlarm.addListener(function(){ alert('great'); });
Could someone please tell why is it not triggering that alert. I check the console, no error was displayed.
Advertisement
Answer
Here is the simplest working example I can think of, warning it is very annoying as when the alarm is on it alerts “Beep” every 12 seconds. It uses a popup browser action to switch the alarm on and off.
manifest.json
{ "manifest_version": 2, "name": "Alarm test", "description": "This extension alarms.", "version": "1.0", "permissions": [ "alarms" ], "background": { "scripts": ["eventPage.js"], "persistent": false }, "browser_action": { "default_icon": "icon.png", "default_popup": "popup.html" } }
popup.html
<!doctype html> <html> <head> <title>Alarms Popup</title> <script src="popup.js"></script> </head> <body> <a href="" id="alarmOn">ON</a> <a href="" id="alarmOff">OFF</a> </ul> </body> </html>
popup.js
var alarmClock = { onHandler : function(e) { chrome.alarms.create("myAlarm", {delayInMinutes: 0.1, periodInMinutes: 0.2} ); window.close(); }, offHandler : function(e) { chrome.alarms.clear("myAlarm"); window.close(); }, setup: function() { var a = document.getElementById('alarmOn'); a.addEventListener('click', alarmClock.onHandler ); var a = document.getElementById('alarmOff'); a.addEventListener('click', alarmClock.offHandler ); } }; document.addEventListener('DOMContentLoaded', function () { alarmClock.setup(); });
And the important bit in eventPage.js
chrome.alarms.onAlarm.addListener(function(alarm) { alert("Beep"); });