小编Aih*_*eed的帖子

Nuxt.js 中使用 Vue-Meta 内联 Js

基本上,我使用 Nuxt 2.9.2,并尝试使用 innerHTML 方法来内联 Google Optimize 脚本,但每当我运行 npm rungenerate 时,代码都会转换某些方面,即使 __dangerouslyDisableSanitizers 将innerHTML列入白名单。

这是我在 Nuxt Config 头对象中的脚本

script: [
    {
      innerHTML: `(function(a,s,y,n,c,h,i,d,e){s.className+=' '+y;h.start=1*new Date;h.end=i=function(){s.className=s.className.replace(RegExp(' ?'+y),'')};(a[n]=a[n]||[]).hide=h;setTimeout(function(){i();h.end=null},c);h.timeout=c;})(window,document.documentElement,'async-hide','dataLayer', 500 , ${JSON.stringify(
        { [process.env.GOOGLE_OPTIMIZE_ID]: true }
      )})`
    }
  ],
  __dangerouslyDisableSanitizers: ['innerHTML']
},
Run Code Online (Sandbox Code Playgroud)

效果如下,尝试了多种不同的方式。无法按预期内联

  !function(e,n,t,a,c,s,d){n.className+=" "+t,s.start=1*new Date,s.end=d=function(){n.className=n.className.replace(RegExp(" ?"+t),"")},(e[a]=e[a]||[]).hide=s,setTimeout(function(){d(),s.end=null},500),s.timeout=500}(window,document.documentElement,"async-hide","dataLayer",0,{"GTM-XXXXXX":!0})
Run Code Online (Sandbox Code Playgroud)

应该

(function(a,s,y,n,c,h,i,d,e){s.className+=' '+y;h.start=1*new Date;h.end=i=function(){s.className=s.className.replace(RegExp(' ?'+y),'')};(a[n]=a[n]||[]).hide=h;setTimeout(function(){i();h.end=null},c);h.timeout=c;})(window,document.documentElement,'async-hide','dataLayer', 500 , 'GTM-XXXXXX'': true }
        )})
Run Code Online (Sandbox Code Playgroud)

javascript vue.js nuxt.js vue-meta

6
推荐指数
1
解决办法
3133
查看次数

标签 统计

javascript ×1

nuxt.js ×1

vue-meta ×1

vue.js ×1