Je souhaite insérer le code de suivi d'une application appelée Zoho dans la section En-tête de chaque page de mon application Next.js. J'utilise un fichier appelé _document.tsx et cela fonctionne bien. Pour un script asymétrique, Next.js recommande d'utiliser le composant Next.js Script (https://nextjs.org/docs/messages/no-script-tags-in-head-component). J'ai suivi les instructions et inséré le script entre parenthèses, mais il a été ignoré sans message d'erreur.Puis-je saisir ce code dans la section Head du fichier _document.tsx ? Serait-il préférable de le diviser en un composant distinct ?
任何建议都将有所帮助
importer un document, { HTML, Tête, Principal, SuivantScript, Contexte de document, DocumentInitialProps, } à partir de "suivant/document" ; importer le script depuis "suivant/script" ; la classe MyDocument étend le document { asynchrone statique getInitialProps( ctx : DocumentContext ) : Promesse{ const initialProps = attendre Document.getInitialProps(ctx); return { ...initialProps } ; } rendre() { retour ( {/* pour Zoho Marketing Automation */} {`var w = fenêtre ; var p = w.location.protocol; if (p.indexOf("http") < 0) { p = "http" + " : " ; } var d = document ; var f = d.getElementsByTagName("script")[0], s = d.createElement("script"); s.type = "texte/javascript"; s.async = false; if (s.readyState) { s.onreadystatechange = fonction () { if (s.readyState == "chargé" || s.readyState == "complet") { s.onreadystatechange = null ; essayer { chargerwaprops( "mon identifiant#", "mon identifiant#", "mon identifiant#", "mon identifiant#", "0,0" ); } attraper (e) {} } } ; } autre { s.onload = fonction () { essayer { chargerwaprops( "mon identifiant#", "mon identifiant#", "mon identifiant#", "mon identifiant#", "0,0" ); } attraper (e) {} } ; }s.src = p + "//ma.zoho.com/hub/js/WebsiteAutomation.js"; f.parentNode.insertBefore(s, f);`} {/* mettre fin à l'automatisation du marketing Zoho */} ≪/Tête> ); } } exporter MonDocument par défaut;
J'ai relu le post précédentSuivant 11 et l'ajout de balises Script ne fonctionne pasentrez la description du lien iciet j'ai réalisé que vous ne pouvez pas mettre le composant
dans la balise Head. De plus, il ne doit pas être dans _document.tsx mais dans _app.tsx (sauf si vous utilisez beforeInteractive, voir le lien ci-dessus).
Parce que je voulais également inclure le script Google Analytics, j'ai créé un composant appelé TrackingCode en tant que fichier js distinct.
Mon fichier _app.tsx est le suivant :