web-dev-qa-db-fra.com

Chrome Extension: Faites-le courir à chaque chargement de page

Je souhaite créer une extension chrome qui exécute certains scripts après le chargement d'une page. Je ne sais pas si je dois implémenter cette logique sur la page d'arrière-plan ou si elle peut être n'importe où, aucune aide. ici sera grandement apprécié.

72
albertosh

A partir d'un script d'arrière-plan , vous pouvez écouter le chrome.tabs.onUpdated événement et vérifiez la propriété changeInfo.status sur le rappel. Il peut être en cours de chargement ou complet . S'il est complet , effectuez l'action.

Exemple:

chrome.tabs.onUpdated.addListener( function (tabId, changeInfo, tab) {
  if (changeInfo.status == 'complete') {

    // do your things

  }
})

Comme cela va probablement se déclencher à la fin de chaque onglet, vous pouvez également vérifier si l'onglet est active sur son attribut du même nom , comme ceci:

chrome.tabs.onUpdated.addListener( function (tabId, changeInfo, tab) {
  if (changeInfo.status == 'complete' && tab.active) {

    // do your things

  }
})
71
fiatjaf

S'il doit être exécuté sur l'événement onload de la page, ce qui signifie que le document et tous ses éléments ont été chargés, il doit figurer dans un script de conten intégré à chaque page pour laquelle vous souhaitez suivre onload.

46
Matchu

Vous pouvez mettre votre script dans un script de contenu, voir

38
Bohdan

Ce code devrait le faire:

manifest.json

   {
      "name": "Alert 'hello world!' on page opening",
      "version": "1.0",
      "manifest_version": 2,
      "content_scripts": [
        {
          "matches": [
            "<all_urls>"
          ],
          "js": ["content.js"]
        }
      ]
    }

content.js

alert('Hello world!')
3
Evan Ross