我尝试在用户接受 cookie 后将 Microsoft Azure Application Insights 脚本动态加载到
<head>
标记中。但是,我遇到了一个问题,即 JavaScript 代码中的反斜杠 (\
) 被删除,导致脚本中断。
以下是相关代码片段:
const scripts = `
<script type="text/javascript">
!(function (cfg) {
// ...
})( {
src: "https://js.monitor.azure.com/scripts/b/ai.3.gbl.min.js",
crossOrigin: "anonymous",
cfg: {
connectionString: "InstrumentationKey=YOUR_INSTRUMENTATION_KEY"
}
});
</script>
<script type="text/javascript" language="javascript">
var ref = document.referrer;
appInsights.trackTrace({ message: 'Referrer ' + ref });
</script>
`;
我实现了以下函数将脚本附加到头部:
function addScripts() {
$('head').append(scripts);
};
但是,当我执行此函数时,反斜杠被删除,导致脚本损坏。我希望脚本能够正确加载而不会丢失任何字符。
您指的
\
是什么?你是说/
中的</script>
需要转义吗?
脚本中不能有
</script>
。
改为这样做
const script = document.createElement('script');
script.textContent = `
!(function (cfg) {
// ...
})( {
src: "https://js.monitor.azure.com/scripts/b/ai.3.gbl.min.js",
crossOrigin: "anonymous",
cfg: {
connectionString: "InstrumentationKey=YOUR_INSTRUMENTATION_KEY"
}
});
var ref = document.referrer;
appInsights.trackTrace({ message: 'Referrer ' + ref });
`
document.querySelector('head').appendChild(script)