经过大量故障排除后,我发现我的ga()
命令在将Google Analytics(分析)加载到Shopify存储之前正在运行时失败。我找到了一个示例代码段,该代码段应该将命令延迟到GA加载完成,但它使用的是我的网站未使用的JQuery。
<script>
$(window).ready(function() {
$('head script[async][src*="analytics"]').on('load', function() {
ga('set', 'dimension1', 'insert_value');
ga('set', 'dimension2', 'insert_value');
ga('set', 'dimension3', 'insert_value');
});
});
</script>
我正在研究如何将其转换为纯Javascript,我想我可以使用addEventListener()来等到它加载而不是正数。应该使用什么函数来挂载另一个Javascript文件?
答案 0 :(得分:2)
您处在正确的轨道上,我想您的事件似乎未触发,因为您的加载顺序存在一些问题(即在注册处理程序之前触发了事件)。以下内容应涵盖该情况。唯一的要求是在触发DOMContentLoaded
之前插入script标签本身。
document.addEventListener("DOMContentLoaded", function() {
const loaded = function() {
console.log("Script loaded");
}
if (ga !== undefined) {
loaded()
} else {
document.querySelector('script[async][src*="analytics"]').addEventListener("load", loaded);
}
});
<script src="https://www.google-analytics.com/analytics.js" async="true"></script>