Détecter les changements dans l'url
J'ai besoin de quelque chose pour détecter des changements dans l'url, mais la page ne fait pas de message de retour, il change de façon dynamique à l'ajout de la div à l'intérieur de l'html, de sorte que l'URL de la page est quelque chose comme cela
et quand je clique sur une autre section de la page, il est
il change non seulement à la fin, mais comme ce
sans faire publier et recharger le javascript donc ma question est, est-il un moyen de détecter ces changements? et écouteur d'événement, mais comment?
Je recherche et que tout le monde dit de hachage événement, mais je n'ai pas de valeur après tout hachage de sorte qu'il ne fonctionne pas
MODIFIER
Juste pour l'enregistrement je n'ai pas le code de la page, ni que j'ai accès, je vais vous expliquer mieux, je suis en train de faire un fond google l'extension et j'ai juste ajouté une diapositive à une page existante, ce changement de page, l'url de la façon dont je l'ai expliqué ci-dessus. les changements de l'url, comme à chaque page, mais ils changent la div à l'intérieur du code html de sorte que la page n'a pas pour recharger tout nouveau
Quand ces mises à jour de l'url qui se passe? Peut-être attacher un écouteur d'événement à chaque fois que vous s'attendre à un changement d'url pour vérifier la nouvelle valeur
les modifications qui se passe normalement quand vous cliquez sur un élément pour changer de page par exemple ici, sur un débordement de pile si je clique sur l'emploi ou les balises ou de l'utilisateur(si vous cliquez sur une il va vous rediriger vers une autre page dans mon cas, il suffit de changer la div et l'url sans le post de retour)
Je n'ai pas de contrôle sur la page, parce que je suis en train de construire une extension qui ajoute des fonctionnalités à cette page, je vous parle du
Apprendre à utiliser la console. Peut-être essayer VisualEvent. Vous n'êtes pas donner assez d'informations pour obtenir une réponse utile. Ceci étant une extension est le type d'informations que vous mettez dans la question.
OriginalL'auteur FFHanzel | 2016-01-25
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de stocker l'URL lorsque la page se charge comme un point de départ et de vérifier chaque n millisecondes pour les changements à l'aide
setInterval
modifier puis sur cette base.Le code suivant est-ce à vérifier deux fois par seconde (500ms):
Le seul auditeur actuellement disponible est
window.onhashchange
qui n'est pas utile dans ce cas, car il semble pour#hash
changements dans l'url.n'est-il pas
onstatechange
événement?non, au moins pour l'instant
OriginalL'auteur user5513314
Il n'est pas "propre", basé sur des événements de façon à détecter de tels changements de l'URL d'un script.
Ils sont fait avec
history.pushState
à l'API et à l'aide de l'API n'émet pas d'événements DOM.Deux indirects possibles d'événements basés sur des approches, outre ceux déjà mentionnés sondage basé sur un:
Une extension peut remplacer
history.pushState
avec un script injecté en outre émettre un DOM événement qui peut être écouté dans un contenu de script.Cette approche est décrite en détail ici.
L'inconvénient est que, selon le code de la page en question, l'injection de script peut-être besoin d'être injecté au début, d'avoir besoin d'
run_at: document_start
qui est sous-optimal pour les performances de chargement des pages.Utiliser un arrière-plan de la page à l'écoute de
chrome.webNavigation.onHistoryStateUpdated
événement.Si vous avez besoin de le détecter dans une page d'arrière-plan parfait,
vous avez terminé, sans jamais avoir besoin d'un contenu de script.
Si vous avez besoin de le détecter dans un contenu de script, vous pouvez utiliser
details.tabId
dans l'écouteur d'événement pour envoyer un message à droite le contenu du script.OriginalL'auteur Xan