0
votes

Next.js - Comment vous assurer que est défini à l'heure à laquelle l'historique change d'événement se déclenche?

dans ma prochaine application.js, je définit la balise code> pour les pages individuelles à l'aide de la méthode recommandée: <pre>Router.events.on("routeChangeComplete", () => { if ('browser' in process) { console.log('--------'); console.log(window.location.href); console.log(document.title); } }); </pre>


0 commentaires

3 Réponses :


1
votes

C'est un petit hack. Settimeout (() => {console.log (document.title)}, 0)


4 commentaires

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 . Mais les dernières versions ( 7 , 8 ) 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 et ajout d'un délai d'une seconde au cas où l'événement est gtm.historychange .


@Andrei Postez votre solution comme réponse.



0
votes

J'ai trouvé un travail autour des événements interceptés envoyés à window.datalayer.push et ajout d'un délai d'une seconde au cas où l'événement est gtm.historychange . < P> Voici mon gtagscript que j'ajoute à sous _document.js : xxx < / Pre>

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 , il apparaît simplement l'événement, qui n'est pas optimal.


1 commentaires

Un jour, la page de chargement de temps sera supérieure à 1000 ms. Ça ne marche pas.



0
votes

Vous pouvez utiliser seinterval xxx


0 commentaires