2017-10-02 3 views
1

Je développe une extension pour Google Chrome qui nécessite une base de données Firebase. Cela fonctionne très bien, "popup.html" est actuellement ouvert. Mais quand il se ferme, mon background.js cesse de fonctionner.Comment javascript peut-il être exécuté en arrière-plan sans ouvrir popup.html dans l'extension Chrome?

J'ai besoin d'une solution qui permettra à background.js de fonctionner en arrière-plan, même lorsque le popup.html est fermé ou que le navigateur est réduit.

Voici mes background.js:

var db = firebase.database().ref(); 
var clipText; 

setInterval(function() { 

document.addEventListener('paste', function(event) { 

    clipText = event.clipboardData.getData('Text'); 

    if (clipText != null) { 

     db.child('data').set(clipText); 
    } else { 

     console.log('Cliptext is null...'); 
    } 
}); 

    document.execCommand('paste'); 
    }, 3000) 

Comme vous le voyez, il utilise la fonction "setInterval" pour faire des actions en arrière-plan toutes les 3 secondes.

+0

Est-ce que votre fichier background.js se trouve dans le manifeste.json? –

+0

"content_scripts": [{"matches": [""], "js": ["background.js"]}], – turing

Répondre

1

En fonction de votre commentaire, vous déclarez votre background.js dans le script de contenu.

Vous devez déclarer dans votre manifest.json comme celui-ci par exemple:

"background": { 
    "persistent": true, 
    "scripts": ["lib/jquery-3.1.1.min.js", "background.js"] 
}, 

Vous pouvez lire sur l'architecture Chrome Extensions here.