特定时间的Google Chrome扩展程序警报

时间:2014-11-12 09:51:49

标签: javascript google-chrome google-chrome-extension

早上好,亲爱的开发人员,

我正在开发一个小型Google Chrome扩展程序,但我不确定这是否正确。也许我对所有背景页面,事件paes,内容脚本等都感到困惑。

这个扩展程序要做什么?警报:操纵当前打开的标签CSS并播放声音。时间总是一样的(在美国或欧洲或任何地方都是如此)。 这不是主要的事情。我使用了类似扩展的这种“架构”,但我必须做一些活跃的事情(点击等)。这里的扩展完全在后台。

{
    "manifest_version": 2,
    "version": "0.1",
    "name": "Alarm whatever",
    "permissions": ["alarms"],
    "icons": {
        "16": "icon.png",
        "48": "icon.png",
        "128": "icon.png"
    },
    "content_scripts": [{
        "js": ["jquery.js", "script.js"],
        "matches": ["http://*/*", "https://*/*"]
    }],
   "background": {
     "scripts": [ "background.js" ],
     "persistent": false 
   } 
}

background.js

// When to ring
var now = new Date(), minutes = 50, seconds = 0;
var timestamp = new Date(now.getFullYear(), now.getMonth(), now.getDate(), now.getHours(), minutes, seconds);
var whenToRing = (timestamp.getTime() - now.getTime());

chrome.runtime.onMessage.addListener(function(request, sender, sendResponse){
    if(request.action == 'createAlarm')
    {   
        // Create
        chrome.alarms.create('theAlarm', {
            // Wann soll der Alarm gefeuert werden?
            // Angabe in Millisekunden
            when: whenToRing,
        }); 
    }
});

chrome.alarms.onAlarm.addListener(function(alarm) {
    if (alarm.name === 'theAlarm') 
    {
        // send a message to the script.js to manipulate the CSS and play sound
        chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
          chrome.tabs.sendMessage(tabs[0].id, {action: 'doAlarm'})   
        });
    }
});

的script.js

$(document).ready(function()
{
    chrome.runtime.sendMessage({action: 'createAlarm'});

    chrome.runtime.onMessage.addListener(
  function(resp, sender, sendResponse) {

        if(resp.action == 'doAlarm')
        {
            // CSS and SOUND here           
        }
    });
}); 

我缩短了CSS和声音。时间设置为当前小时以测试此扩展。

一些想法?谢谢!

1 个答案:

答案 0 :(得分:0)

老问题,但我认为答案很重要。

警报的创建看起来不错。 以下是我如何计算whenToRing,例如,如果你想在08:00 am报警。

var whenToRing = new Date()。setHours(8);