早上好,亲爱的开发人员,
我正在开发一个小型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和声音。时间设置为当前小时以测试此扩展。
一些想法?谢谢!
答案 0 :(得分:0)
老问题,但我认为答案很重要。
警报的创建看起来不错。 以下是我如何计算whenToRing,例如,如果你想在08:00 am报警。
var whenToRing = new Date()。setHours(8);