我正在尝试将 amp-analytics 脚本放入从 Next.js 生成的 amp 页面中,但由于 & 字符,SetInnerHTML 很危险地破坏了 JSON 配置。
这是代码:
<amp-analytics id='analytics1' type='googleanalytics'>
<script type='application/json' dangerouslySetInnerHTML={{ __html: `
{
"vars": {
"account": "XX-XXXXXXXX-X"
},
"requests": {
"experiment": "\${pageview}&xid=\${xid}&xvar=\${xvar}"
}
}
` }} />
</amp-analytics>
如您所见,& 字符已转换为 \u0026,现在 amp-analytics 标记不起作用。
我也试过这个:
<amp-analytics id='analytics1' type='googleanalytics'>
<script type='application/json' dangerouslySetInnerHTML={{ __html: `
{
"vars": {
"account": "XX-XXXXXXXX-X"
},
"requests": {
"experiment": "${JSON.stringify('${pageview}&xid=${xid}&xvar=${xvar}')}"
}
}
` }} />
</amp-analytics>
关于如何解决这个问题的任何想法?
事实证明,这是因为 Next.js 中的 AMP 优化器而发生的——github.com/ampproject/amp-toolbox/pull/649 现在我必须为这种情况找到解决方案