#facebook #next.js #script
Вопрос:
Я пытаюсь добавить скрипт пикселя Facebook на определенную страницу (X) моего следующего приложения js. https://developers.facebook.com/docs/facebook-pixel/implementation
Я использую next/script, чтобы добавить его, и он загружается правильно только при доступе к странице X. https://nextjs.org/docs/basic-features/script
Однако всякий раз, когда я перехожу на другую страницу после доступа к странице X и после загрузки сценария, сценарий остается в Devtools. Мой вопрос в следующем: должно ли это так работать? Является ли Next js просто оптимизацией загрузки скрипта и его выполнением только при загрузке/доступе к странице X и нигде больше, или я должен явно указать ему удалить скрипт, если путь к странице другой?
Я использую подход встроенного сценария (со стратегией загрузки по умолчанию next/script):
<Script id="Facebook_Pixel_Code">
{`!function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod?n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0;t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js');fbq('init', [OUR_FB_ID]);fbq('track', 'PageView');`}
</Script>
Спасибо вам за вашу проницательность !
Комментарии:
1. что означает «сценарий остается в Devtools»? выполняется ли это на других страницах или нет? вы можете легко проверить это на вкладке «Сеть».
2. Привет 🙂 Скрипт правильно отображается в Devtools и выполняется правильно (вызов fbevents). Мне было любопытно, как Next js обрабатывает свое поведение, потому что вызов fbevents выполняется, когда вы заходите на страницу X и больше никогда не звоните. Поскольку у меня нет доступа к инструментам FB, я не знаю, работает ли скрипт только на странице X или также на других страницах (кроме того, когда я возвращаюсь на страницу X, дополнительного вызова нет).
3. У меня та же проблема. Я вводлю Crisp на одну из наших страниц, и когда страница меняется, кнопка Crisp остается на странице.