0

Je suis en train de faire une extension Chrome pour Zendesk et il semble que leur application est construite avec Ember. J'ai utilisé $ (document) .ready, mais ça ne fait que tirer vraiment si je rafraîchis les pages ... sinon ça ne se déclenche pas du tout. Comment puis-je écouter les changements de page dans Zendesk pour mon extension Chrome?Comment détecter un changement d'itinéraire sur une application Ember étrangère?

Je regardais autour et seulement trouvé des réponses qui aiderions que si elle était ma propre application Ember. En outre, ce n'est pas un hashchange.

Répondre

0

Il semble que vous voulez mettre en œuvre un écouteur pour l'événement beforeunload: https://developer.mozilla.org/en-US/docs/Web/Events/beforeunload

Mais plutôt que de mettre un message de confirmation, mettre en œuvre tout ce que vous voulez faire lorsque les changements de navigation. Si vous ajoutez un message de confirmation, il apparaîtra une boîte de dialogue qui vous demandera si vous voulez vraiment vous éloigner, mais cela ne semble pas être ce que vous voulez ici. Il semble que vous vouliez simplement surveiller qu'un événement de navigation s'est produit, mais je pourrais me tromper.

0

Voici quelques idées:

  • Vous pouvez pirater peut-être les méthodes d'objet history.
  • Ou si vous avez accès aux API chrome privilégiés, vous pouvez essayer d'utiliser network.onNavigated. Je ne sais pas si elle est invoquée sur l'histoire pushState cependant, mieux vaut vérifier.

Vous pouvez également jeter un oeil à Ember inspector code, il fournit beaucoup d'idées sur l'application de Ember actuellement en cours d'exécution, y compris quelle route est actuellement actif de sorte que vous pouvez trouver les outils pour faire ce que vous avez besoin là-dedans.

Je pense que cela fonctionne en injectant du code dans la page, puis communicating with it à travers des messages de fenêtre. Le code injecté effectue ensuite l'analyse demandée et renvoie le résultat.