dans ma prochaine application.js, je définit la balise
Router.events.on("routeChangeComplete", () => {
if ('browser' in process) {
console.log('--------');
console.log(window.location.href);
console.log(document.title);
}
});
3 Réponses :
C'est un petit hack. Settimeout (() => {console.log (document.title)}, 0) code> p>
Le "hack" fonctionne (avec un retard plus important), mais le problème est que nous ne contrôlons pas comment GTM détecte l'événement de changement d'historique. Donc, même si notre code obtient le bon titre, GTM obtient la mauvaise valeur.
@Andrei check this github.com/zeit/next.js/issues/ 4061 # Issuecomment-376319885
Ils ont signalé qu'il a fonctionné dans 5.1.0 code>. Mais les dernières versions (
7 code>,
8 code>) semblent avoir une régression. Quoi qu'il en soit, je l'ai résolu par intercepter des événements envoyés à
window.datalayer.push code> et ajout d'un délai d'une seconde au cas où l'événement est
gtm.historychange code>.
@Andrei Postez votre solution comme réponse.
J'ai trouvé un travail autour des événements interceptés envoyés à Je vais attendre un moment pour voir si une solution officielle vient de l'équipe Zee. Ma solution ne répond pas à la question. Il ne définit pas window.datalayer.push code> et ajout d'un délai d'une seconde au cas où l'événement est
gtm.historychange code>. < P> Voici mon
gtagscript code> que j'ajoute à
_document.js code>: p>
Un jour, la page de chargement de temps sera supérieure à 1000 ms. Ça ne marche pas.
Vous pouvez utiliser seinterval