0

Je suis en train de construire une extension Chrome pour mon entreprise à utiliser avec le système de gestion de projet, nous utilisons, BaseCampExtension Chrome pas tirer sur les pages intérieures

la charge initiale de Basecamp, les spectacles d'alerte, mais quand Je navigue à travers le site, je ne vois plus l'alerte.

MANIFEST.JS

{ 
    "manifest_version": 2, 
    "name": "BaseCamp Signature", 
    "description": "This extension adds signature to Basecamp", 
    "version": "1.0", 
    "browser_action": { 
     "default_icon": "icon.png", 
     "default_popup": "popup.html", 
     "default_title": "Title!" 
    }, 
    "permissions": [ 
     "storage", 
     "activeTab", 
     "tabs", 
     "https://3.basecamp.com/*"  
    ], 
    "content_scripts": [ 
     { 
      "matches": ["https://3.basecamp.com/*"], 
      "all_frames": true, 
      "js": ["content.js"], 
      "run_at": "document_end" 
     } 
    ] 
} 

CONTENU JS

alert('bingo'); 

Comme un test je matches: ["https://*/*"] dans mon manifeste, et tout cela le feu sur les pages intérieures de tous les sites, StackOverflow inclus, même cette méthode n'a pas déclenché lors de la navigation à travers les pages intérieures de BaseCamp

Comme toujours, toute aide sera grandement appréciée

+1

Peut-être BaseCamp met simplement à jour l'URL et modifie par programmation le contenu de la page, comme le fait YouTube. –

+0

Intéressant, ce qui signifie quelque chose comme React courir dans les coulisses? –

+1

React est juste un cadre. Je veux dire en utilisant l'API native: https://developer.mozilla.org/fr-fr/docs/Web/API/History_API#The_pushState()_method –

Répondre

-1

En stockant l'URL actuelle et de vérifier toutes les demi-secondes pour voir si elle a changé, j'ai pu exécuter mon extension sur chaque mise à jour URL

var currentPage = window.location.href; 

// listen for changes 
setInterval(function() { 
    if (currentPage != window.location.href) { 
     // page has changed, set new page as 'current' 
     currentPage = window.location.href; 
     alert('double bingo'); 
    } 
}, 500);