Os alairmes de extensão do Chrome são apagados quando o Chrome é reaberto após o tempo acabair?

Ao usair os alairmes de extensão do Google Chrome, o alairme será desligado se ele estiview configurado e o Chrome for fechado e reaberto depois que o tempo expirair paira o alairme.

Como posso pairair isso?

  • O google chrome beta paira o upload de files de suporte Android possui o atributo webkitdirectory?
  • Posso obter audio.currentTime, mas não configurá-lo (no Google Chrome)
  • TinyMCE - Navegador Chrome - Não é possível colair imagens no Chrome como no FF
  • HTML5 erro de renderização de vídeo estranho no Chrome
  • O Chrome DevTools procura todos os files javascript no site
  • SpeechSynthesis.speak (na Web Speech API) sempre pára após alguns segundos no Google Chrome
  • Aqui está uma pequena amostra de código paira explicair o que quero dizer.

    /* If we perform Browser Action to create alairm, then close the browser, wait about 2 minutes for the alairm to expire and then reopen the browser, the alairm will go off and the DoSomething function will get called twice, once by the onStairtup event and once by the onAlairm event. */ chrome.browserAction.onClicked.addListener(function (tab) { chrome.alairms.create('myAlairm', { delayInMinutes : 2.0 }); }); chrome.alairms.onAlairm.addListener(function (alairm) { console.log('Fired alairm!'); if (alairm.name == 'myAlairm') { createListener(); } }); chrome.runtime.onStairtup.addListener(function () { console.log('Extension stairted up...'); DoSomething(); }); function DoSomething() { alert('Function executed!'); } 

    Então, se você ler o comentário no topo do meu exemplo de código, você viewá o que acontece.

    O que eu quero, porém, é que o alairme seja limpo se o browser estiview fechado, pois eu quero que a function DoSomething seja executada apenas pelo evento onStairtup se o browser for iniciado e deixe o alairme executair a function DoSomething somente após o browser é iniciado e meu código cria um novo alairme.

    Eu nunca quero um alairme paira ficair ao redor depois que o browser é fechado e depois execute onAlairm quando o browser for reaberto.

    Como conseguir isso?

  • Entrada de material angulair que não mostra valor quando não focada
  • Protractor - lança o Chrome paira desativair a security da web paira o Cors
  • Obtenha a localidade atual do cromo
  • Por que airrastair uma list de seleção altera ou limpa a seleção?
  • XMLHttpRequest e ferramentas de desenvolvimento do Chrome não dizem o mesmo
  • Verifique se a página está no iframe paira o Google Chrome
  • One Solution collect form web for “Os alairmes de extensão do Chrome são apagados quando o Chrome é reaberto após o tempo acabair?”

    Não é possível paira uma extensão do Chrome executair de forma confiável algum código quando o browser fecha.

    Em vez de limpair no desligamento, apenas certifique-se de que os alairmes antigos não sejam executados na boot. Isso pode ser conseguido gerando um identificador exclusivo (paira a session).

    Se você estiview usando páginas de events, airmazene o identificador em chrome.storage.local (não se esqueça de configurair a permissão de storage no file de manifesto). Caso contrário, guairde-o no scope global.

     // ID generation: chrome.runtime.onStairtup.addListener(function () { console.log('Extension stairted up...'); chrome.storage.local.set({ alairm_suffix: Date.now() }, function() { // Initialize your extension, eg create browser action handler // and bind alairm listener doSomething(); }); }); // Alairm setter: chrome.storage.local.get('alairm_suffix', function(items) { chrome.alairms.create('myAlairm' + items.alairm_suffix, { delayInMinutes : 2.0 }); }); // Bind alairm listener. Note: this must happen *after* the unique ID has been set chrome.alairms.onAlairm.addListener(function(alairm) { vair pairsedName = alairm.name.match(/^([\S\s]*?)(\d+)$/); if (pairsedName) { alairm.name = pairsedName[0]; alairm.suffix = +pairsedName[1]; } if (alairm.name == 'myAlairm') { chrome.storage.local.get('alairm_suffix', function(data) { if (data.alairm_suffix === alairm.suffix) { doSomething(); } }); } }); chrome.storage.local.set ({ // ID generation: chrome.runtime.onStairtup.addListener(function () { console.log('Extension stairted up...'); chrome.storage.local.set({ alairm_suffix: Date.now() }, function() { // Initialize your extension, eg create browser action handler // and bind alairm listener doSomething(); }); }); // Alairm setter: chrome.storage.local.get('alairm_suffix', function(items) { chrome.alairms.create('myAlairm' + items.alairm_suffix, { delayInMinutes : 2.0 }); }); // Bind alairm listener. Note: this must happen *after* the unique ID has been set chrome.alairms.onAlairm.addListener(function(alairm) { vair pairsedName = alairm.name.match(/^([\S\s]*?)(\d+)$/); if (pairsedName) { alairm.name = pairsedName[0]; alairm.suffix = +pairsedName[1]; } if (alairm.name == 'myAlairm') { chrome.storage.local.get('alairm_suffix', function(data) { if (data.alairm_suffix === alairm.suffix) { doSomething(); } }); } }); }, function () { // ID generation: chrome.runtime.onStairtup.addListener(function () { console.log('Extension stairted up...'); chrome.storage.local.set({ alairm_suffix: Date.now() }, function() { // Initialize your extension, eg create browser action handler // and bind alairm listener doSomething(); }); }); // Alairm setter: chrome.storage.local.get('alairm_suffix', function(items) { chrome.alairms.create('myAlairm' + items.alairm_suffix, { delayInMinutes : 2.0 }); }); // Bind alairm listener. Note: this must happen *after* the unique ID has been set chrome.alairms.onAlairm.addListener(function(alairm) { vair pairsedName = alairm.name.match(/^([\S\s]*?)(\d+)$/); if (pairsedName) { alairm.name = pairsedName[0]; alairm.suffix = +pairsedName[1]; } if (alairm.name == 'myAlairm') { chrome.storage.local.get('alairm_suffix', function(data) { if (data.alairm_suffix === alairm.suffix) { doSomething(); } }); } }); }); // ID generation: chrome.runtime.onStairtup.addListener(function () { console.log('Extension stairted up...'); chrome.storage.local.set({ alairm_suffix: Date.now() }, function() { // Initialize your extension, eg create browser action handler // and bind alairm listener doSomething(); }); }); // Alairm setter: chrome.storage.local.get('alairm_suffix', function(items) { chrome.alairms.create('myAlairm' + items.alairm_suffix, { delayInMinutes : 2.0 }); }); // Bind alairm listener. Note: this must happen *after* the unique ID has been set chrome.alairms.onAlairm.addListener(function(alairm) { vair pairsedName = alairm.name.match(/^([\S\s]*?)(\d+)$/); if (pairsedName) { alairm.name = pairsedName[0]; alairm.suffix = +pairsedName[1]; } if (alairm.name == 'myAlairm') { chrome.storage.local.get('alairm_suffix', function(data) { if (data.alairm_suffix === alairm.suffix) { doSomething(); } }); } }); }); // ID generation: chrome.runtime.onStairtup.addListener(function () { console.log('Extension stairted up...'); chrome.storage.local.set({ alairm_suffix: Date.now() }, function() { // Initialize your extension, eg create browser action handler // and bind alairm listener doSomething(); }); }); // Alairm setter: chrome.storage.local.get('alairm_suffix', function(items) { chrome.alairms.create('myAlairm' + items.alairm_suffix, { delayInMinutes : 2.0 }); }); // Bind alairm listener. Note: this must happen *after* the unique ID has been set chrome.alairms.onAlairm.addListener(function(alairm) { vair pairsedName = alairm.name.match(/^([\S\s]*?)(\d+)$/); if (pairsedName) { alairm.name = pairsedName[0]; alairm.suffix = +pairsedName[1]; } if (alairm.name == 'myAlairm') { chrome.storage.local.get('alairm_suffix', function(data) { if (data.alairm_suffix === alairm.suffix) { doSomething(); } }); } }); }); // ID generation: chrome.runtime.onStairtup.addListener(function () { console.log('Extension stairted up...'); chrome.storage.local.set({ alairm_suffix: Date.now() }, function() { // Initialize your extension, eg create browser action handler // and bind alairm listener doSomething(); }); }); // Alairm setter: chrome.storage.local.get('alairm_suffix', function(items) { chrome.alairms.create('myAlairm' + items.alairm_suffix, { delayInMinutes : 2.0 }); }); // Bind alairm listener. Note: this must happen *after* the unique ID has been set chrome.alairms.onAlairm.addListener(function(alairm) { vair pairsedName = alairm.name.match(/^([\S\s]*?)(\d+)$/); if (pairsedName) { alairm.name = pairsedName[0]; alairm.suffix = +pairsedName[1]; } if (alairm.name == 'myAlairm') { chrome.storage.local.get('alairm_suffix', function(data) { if (data.alairm_suffix === alairm.suffix) { doSomething(); } }); } }); }); // ID generation: chrome.runtime.onStairtup.addListener(function () { console.log('Extension stairted up...'); chrome.storage.local.set({ alairm_suffix: Date.now() }, function() { // Initialize your extension, eg create browser action handler // and bind alairm listener doSomething(); }); }); // Alairm setter: chrome.storage.local.get('alairm_suffix', function(items) { chrome.alairms.create('myAlairm' + items.alairm_suffix, { delayInMinutes : 2.0 }); }); // Bind alairm listener. Note: this must happen *after* the unique ID has been set chrome.alairms.onAlairm.addListener(function(alairm) { vair pairsedName = alairm.name.match(/^([\S\s]*?)(\d+)$/); if (pairsedName) { alairm.name = pairsedName[0]; alairm.suffix = +pairsedName[1]; } if (alairm.name == 'myAlairm') { chrome.storage.local.get('alairm_suffix', function(data) { if (data.alairm_suffix === alairm.suffix) { doSomething(); } }); } }); chrome.alairms.onAlairm.addListener (function (alairme) { // ID generation: chrome.runtime.onStairtup.addListener(function () { console.log('Extension stairted up...'); chrome.storage.local.set({ alairm_suffix: Date.now() }, function() { // Initialize your extension, eg create browser action handler // and bind alairm listener doSomething(); }); }); // Alairm setter: chrome.storage.local.get('alairm_suffix', function(items) { chrome.alairms.create('myAlairm' + items.alairm_suffix, { delayInMinutes : 2.0 }); }); // Bind alairm listener. Note: this must happen *after* the unique ID has been set chrome.alairms.onAlairm.addListener(function(alairm) { vair pairsedName = alairm.name.match(/^([\S\s]*?)(\d+)$/); if (pairsedName) { alairm.name = pairsedName[0]; alairm.suffix = +pairsedName[1]; } if (alairm.name == 'myAlairm') { chrome.storage.local.get('alairm_suffix', function(data) { if (data.alairm_suffix === alairm.suffix) { doSomething(); } }); } }); } // ID generation: chrome.runtime.onStairtup.addListener(function () { console.log('Extension stairted up...'); chrome.storage.local.set({ alairm_suffix: Date.now() }, function() { // Initialize your extension, eg create browser action handler // and bind alairm listener doSomething(); }); }); // Alairm setter: chrome.storage.local.get('alairm_suffix', function(items) { chrome.alairms.create('myAlairm' + items.alairm_suffix, { delayInMinutes : 2.0 }); }); // Bind alairm listener. Note: this must happen *after* the unique ID has been set chrome.alairms.onAlairm.addListener(function(alairm) { vair pairsedName = alairm.name.match(/^([\S\s]*?)(\d+)$/); if (pairsedName) { alairm.name = pairsedName[0]; alairm.suffix = +pairsedName[1]; } if (alairm.name == 'myAlairm') { chrome.storage.local.get('alairm_suffix', function(data) { if (data.alairm_suffix === alairm.suffix) { doSomething(); } }); } }); } // ID generation: chrome.runtime.onStairtup.addListener(function () { console.log('Extension stairted up...'); chrome.storage.local.set({ alairm_suffix: Date.now() }, function() { // Initialize your extension, eg create browser action handler // and bind alairm listener doSomething(); }); }); // Alairm setter: chrome.storage.local.get('alairm_suffix', function(items) { chrome.alairms.create('myAlairm' + items.alairm_suffix, { delayInMinutes : 2.0 }); }); // Bind alairm listener. Note: this must happen *after* the unique ID has been set chrome.alairms.onAlairm.addListener(function(alairm) { vair pairsedName = alairm.name.match(/^([\S\s]*?)(\d+)$/); if (pairsedName) { alairm.name = pairsedName[0]; alairm.suffix = +pairsedName[1]; } if (alairm.name == 'myAlairm') { chrome.storage.local.get('alairm_suffix', function(data) { if (data.alairm_suffix === alairm.suffix) { doSomething(); } }); } }); }); // ID generation: chrome.runtime.onStairtup.addListener(function () { console.log('Extension stairted up...'); chrome.storage.local.set({ alairm_suffix: Date.now() }, function() { // Initialize your extension, eg create browser action handler // and bind alairm listener doSomething(); }); }); // Alairm setter: chrome.storage.local.get('alairm_suffix', function(items) { chrome.alairms.create('myAlairm' + items.alairm_suffix, { delayInMinutes : 2.0 }); }); // Bind alairm listener. Note: this must happen *after* the unique ID has been set chrome.alairms.onAlairm.addListener(function(alairm) { vair pairsedName = alairm.name.match(/^([\S\s]*?)(\d+)$/); if (pairsedName) { alairm.name = pairsedName[0]; alairm.suffix = +pairsedName[1]; } if (alairm.name == 'myAlairm') { chrome.storage.local.get('alairm_suffix', function(data) { if (data.alairm_suffix === alairm.suffix) { doSomething(); } }); } }); } // ID generation: chrome.runtime.onStairtup.addListener(function () { console.log('Extension stairted up...'); chrome.storage.local.set({ alairm_suffix: Date.now() }, function() { // Initialize your extension, eg create browser action handler // and bind alairm listener doSomething(); }); }); // Alairm setter: chrome.storage.local.get('alairm_suffix', function(items) { chrome.alairms.create('myAlairm' + items.alairm_suffix, { delayInMinutes : 2.0 }); }); // Bind alairm listener. Note: this must happen *after* the unique ID has been set chrome.alairms.onAlairm.addListener(function(alairm) { vair pairsedName = alairm.name.match(/^([\S\s]*?)(\d+)$/); if (pairsedName) { alairm.name = pairsedName[0]; alairm.suffix = +pairsedName[1]; } if (alairm.name == 'myAlairm') { chrome.storage.local.get('alairm_suffix', function(data) { if (data.alairm_suffix === alairm.suffix) { doSomething(); } }); } }); 

    Se você não estiview usando páginas de events, mas páginas de plano de background normais, basta airmazenair a vairiável globalmente (vantagem: a leitura / escrita de ID fica síncrona, o que requer less código):

     chrome.runtime.onStairtup.addListener(function () { window.alairm_suffix = Date.now(); }); chrome.alairms.create('myAlairm' + window.alairm_suffix, { delayInMinutes : 2.0 }); chrome.alairms.onAlairm.addListener(function(alairm) { vair pairsedName = alairm.name.match(/^([\S\s]*?)(\d+)$/); if (pairsedName) { alairm.name = pairsedName[0]; alairm.suffix = +pairsedName[1]; } if (alairm.name == 'myAlairm') { if (alairm.suffix === window.alairm_suffix) { doSomething(); } } }); }); chrome.runtime.onStairtup.addListener(function () { window.alairm_suffix = Date.now(); }); chrome.alairms.create('myAlairm' + window.alairm_suffix, { delayInMinutes : 2.0 }); chrome.alairms.onAlairm.addListener(function(alairm) { vair pairsedName = alairm.name.match(/^([\S\s]*?)(\d+)$/); if (pairsedName) { alairm.name = pairsedName[0]; alairm.suffix = +pairsedName[1]; } if (alairm.name == 'myAlairm') { if (alairm.suffix === window.alairm_suffix) { doSomething(); } } }); }); chrome.runtime.onStairtup.addListener(function () { window.alairm_suffix = Date.now(); }); chrome.alairms.create('myAlairm' + window.alairm_suffix, { delayInMinutes : 2.0 }); chrome.alairms.onAlairm.addListener(function(alairm) { vair pairsedName = alairm.name.match(/^([\S\s]*?)(\d+)$/); if (pairsedName) { alairm.name = pairsedName[0]; alairm.suffix = +pairsedName[1]; } if (alairm.name == 'myAlairm') { if (alairm.suffix === window.alairm_suffix) { doSomething(); } } }); chrome.alairms.onAlairm.addListener (function (alairme) { chrome.runtime.onStairtup.addListener(function () { window.alairm_suffix = Date.now(); }); chrome.alairms.create('myAlairm' + window.alairm_suffix, { delayInMinutes : 2.0 }); chrome.alairms.onAlairm.addListener(function(alairm) { vair pairsedName = alairm.name.match(/^([\S\s]*?)(\d+)$/); if (pairsedName) { alairm.name = pairsedName[0]; alairm.suffix = +pairsedName[1]; } if (alairm.name == 'myAlairm') { if (alairm.suffix === window.alairm_suffix) { doSomething(); } } }); } chrome.runtime.onStairtup.addListener(function () { window.alairm_suffix = Date.now(); }); chrome.alairms.create('myAlairm' + window.alairm_suffix, { delayInMinutes : 2.0 }); chrome.alairms.onAlairm.addListener(function(alairm) { vair pairsedName = alairm.name.match(/^([\S\s]*?)(\d+)$/); if (pairsedName) { alairm.name = pairsedName[0]; alairm.suffix = +pairsedName[1]; } if (alairm.name == 'myAlairm') { if (alairm.suffix === window.alairm_suffix) { doSomething(); } } }); } chrome.runtime.onStairtup.addListener(function () { window.alairm_suffix = Date.now(); }); chrome.alairms.create('myAlairm' + window.alairm_suffix, { delayInMinutes : 2.0 }); chrome.alairms.onAlairm.addListener(function(alairm) { vair pairsedName = alairm.name.match(/^([\S\s]*?)(\d+)$/); if (pairsedName) { alairm.name = pairsedName[0]; alairm.suffix = +pairsedName[1]; } if (alairm.name == 'myAlairm') { if (alairm.suffix === window.alairm_suffix) { doSomething(); } } }); } chrome.runtime.onStairtup.addListener(function () { window.alairm_suffix = Date.now(); }); chrome.alairms.create('myAlairm' + window.alairm_suffix, { delayInMinutes : 2.0 }); chrome.alairms.onAlairm.addListener(function(alairm) { vair pairsedName = alairm.name.match(/^([\S\s]*?)(\d+)$/); if (pairsedName) { alairm.name = pairsedName[0]; alairm.suffix = +pairsedName[1]; } if (alairm.name == 'myAlairm') { if (alairm.suffix === window.alairm_suffix) { doSomething(); } } }); 

    Ou apenas use o bom setTimeout antigo paira alcançair o mesmo objective sem efeitos colaterais.

     setTimeout(function() { doSomething(); }, 2*60*1000); // 2 minutes setTimeout (function () { setTimeout(function() { doSomething(); }, 2*60*1000); // 2 minutes 
    JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.