首页 > 解决方案 > 导入和导出外部 javascript 代码

问题描述

我想<script>在我的反应应用程序中动态创建带有跟踪代码的标签。(当用户单击接受以启用跟踪时)

我试着用这样的东西

import analyseScripts from './analyseScripts';

  loadAnalyseScripts() {
    console.log('load analyse scripts');
    const script = document.createElement('script');
    script.src = analyseScripts();
    script.async = true;
    document.body.appendChild(script);
  }

并通过以下方式导出:

export default function marketingScripts() {
  return (

    (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-5CQF85S');

  )
}

但是当然导出是错误的。如何实现这样的结果?

<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-5CQF85S');
</script>

标签: javascript

解决方案


推荐阅读