阅读教程后,我试图创建一个自定义JavaScript GTM变量。
但是我只是收到一条消息,提示我存在解析错误。
第43行的错误,字符5:解析错误。 ')'预期
不确定这是怎么回事。有任何想法吗?谢谢。
function countdown(endDate) {
var days, hours, minutes, seconds;
endDate = new Date(endDate).getTime();
if (isNaN(endDate)) {
return;
}
setInterval(calculate, 1000);
function calculate() {
var startDate = new Date();
startDate = startDate.getTime();
var timeRemaining = parseInt((endDate - startDate) / 1000);
if (timeRemaining >= 0) {
days = parseInt(timeRemaining / 86400);
timeRemaining = (timeRemaining % 86400);
hours = parseInt(timeRemaining / 3600);
timeRemaining = (timeRemaining % 3600);
minutes = parseInt(timeRemaining / 60);
timeRemaining = (timeRemaining % 60);
seconds = parseInt(timeRemaining);
document.getElementById("days").innerHTML = parseInt(days, 10);
document.getElementById("hours").innerHTML = ("0" + hours).slice(-2);
document.getElementById("minutes").innerHTML = ("0" + minutes).slice(-2);
document.getElementById("seconds").innerHTML = ("0" + seconds).slice(-2);
} else {
return;
}
}
}
(function () {
countdown('09/06/2019 12:00:00 AM');
}());
答案 0 :(得分:1)
GTM中自定义Javascript变量的语法如下:
function() {
//your code
return //your result;
}
这就是为什么当您尝试保存代码时收到错误消息的原因。
因此,您只需要包括想要在此处实现的核心功能。但是,这种类型的变量应主要用于计算和返回值,而不是操作DOM。
您需要的是自定义HTML标记,该脚本应包含在script
标记内:
<script>
function countdown(endDate) {
//your countdown function
}
(function () {
countdown('09/06/2019 12:00:00 AM');
}());
</script>
您还将需要一个触发器,该触发器将在页面加载时启动此标签。可能只有在DOM之后或在加载窗口之后,才能在脚本运行时使用所有元素。
还请注意,countdown
将在全局名称空间中创建,因此您需要注意不要覆盖其他倒计时功能或将其覆盖。