next.js 未捕获的类型错误:使用GTM时无法将undefined或null转换为对象

sz81bmfz  于 2022-12-18  发布在  其他
关注(0)|答案(1)|浏览(176)

当我将此脚本添加到NextJs应用程序中的_document.tsx时,在构建应用程序时,我开始在控制台上收到错误。

<script
            dangerouslySetInnerHTML={{
              __html: `(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
                new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
                j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
                'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
                })(window,document,'script','dataLayer','GTM-XXXXXX');`,
            }}
          ></script>

这是出现在我的控制台上的错误。

有办法去除吗?

lmvvr0a8

lmvvr0a81#

您必须添加GTAG管理器提供的2个脚本,
第一个脚本-<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-xxxxx');</script>
第二个Iframe脚本-<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-XXXXXX" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
下面是nextjs的示例
第一个脚本将放入HEAD标签,如下所示-

<script  dangerouslySetInnerHTML={ { __html: `
         (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
         new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
         j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
         'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
         })(window,document,'script','dataLayer','GTM-XXXXXX');
         `
          }} />

第二个脚本将被放入body标签中,如下所示-

<Script
          strategy="afterInteractive"
          dangerouslySetInnerHTML={{
            __html: `
            <noscript>   <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-XXXXXX"
            height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
          `,
          }}
        />

相关问题