首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在头盔标签gastby中加载脚本文件

如何在头盔标签gastby中加载脚本文件
EN

Stack Overflow用户
提问于 2022-06-28 13:34:03
回答 2查看 62关注 0票数 0

我想使用Helmet标记使用Gatsby.js加载一些脚本文件,脚本文件如下所示:

代码语言:javascript
复制
<script type="text/javascript">
  window.dataLayer = window.dataLayer || [];
  function gtag() {
    dataLayer.push(arguments);
  }
  gtag('consent', 'default', {
    ad_storage: 'denied',
    analytics_storage: 'denied',
    wait_for_update: 1500,
  });
  gtag('set', 'ads_data_redaction', true);
</script>

这是我的SEO组件:

代码语言:javascript
复制
 <Helmet>
      <title>{metaTitle}</title>
      <meta name="viewport" content="width=device-width, initial-scale=1.0" />
      <script id="CookieConsent" src="https://policy.app.cookieinformation.com/uc.js" data-culture="EN" type="text/javascript"></script>
      <script async src="https://www.googletagmanager.com/gtag/js?id=321012880"></script>
     <script type="text/javascript">
  window.dataLayer = window.dataLayer || [];
  function gtag() {
    dataLayer.push(arguments);
  }
  gtag('consent', 'default', {
    ad_storage: 'denied',
    analytics_storage: 'denied',
    wait_for_update: 1500,
  });
  gtag('set', 'ads_data_redaction', true);
</script>
    </Helmet>

当我直接在Helmet标签中使用这个标签时,这会导致一个错误,更好的说,脚本代码不会被读取,知道如何解决这个问题吗?或者,除了在盖茨比中加载脚本文件之外,还有其他选择吗?谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-06-29 05:40:02

您可以使用盖茨比的脚本API:https://www.gatsbyjs.com/docs/reference/built-in-components/gatsby-script/

然后,您的示例代码将如下所示:

代码语言:javascript
复制
import { Script } from "gatsby"

<Script id="gtag-config">
  {`
    window.dataLayer = window.dataLayer || [];
    function gtag() {
      dataLayer.push(arguments);
    }
    gtag('consent', 'default', {
      ad_storage: 'denied',
      analytics_storage: 'denied',
      wait_for_update: 1500,
    });
    gtag('set', 'ads_data_redaction', true);
  `}
</Script>

然后在你想要的任何反应组件中使用这个片段。请注意,您需要为内联脚本向组件中添加一个id (参见https://www.gatsbyjs.com/docs/reference/built-in-components/gatsby-script/#inline-scripts)

票数 1
EN

Stack Overflow用户

发布于 2022-06-28 13:59:58

在头盔3.0.0中你可以使用innerHTML

代码语言:javascript
复制
<Helmet 
  script={[{ 
    type: 'text/javascript', 
    innerHTML: `
      window.dataLayer = window.dataLayer || [];
      function gtag() {
        dataLayer.push(arguments);
      }
      gtag('consent', 'default', {
        ad_storage: 'denied',
        analytics_storage: 'denied',
        wait_for_update: 1500,
      });
      gtag('set', 'ads_data_redaction', true);
    `
  }]} 
/>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72787401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档