javascript - 跟踪代码管理器中的 JavaScript 编译器错误
问题描述
我正在尝试使用 cookie 通过 GTM 设置每个会话的用户浏览量。我正在使用自定义 JavaScript 变量:
function readCookie(name) {
var cookieName = name + "=";
var cookieSplit = document.cookie.split(';');
for (var i = 0; i < cookieSplit.length; i++) {
var cookies = cookieSplit[i];
while (cookies.charAt(0) === ' ') cookies = cookies.substring(1, cookies.length);
if (cookies.indexOf(cookieName) === 0) return cookies.substring(cookieName.length, cookies.length);
}
return null;
}
function viewAppend() {
var oldCookie = readCookie('viewCount');
if (oldCookie === null) {
document.cookie = "viewCount=1; path=/";
} else {
var views = oldCookie + 1;
document.cookie = "viewCount="+views+"; path=/";
}
}
viewAppend();
我不断收到相同的编译器错误:“第 12 行错误,字符 1:解析错误。')' 预期。”
我似乎无法弄清楚我做错了什么,但任何帮助表示赞赏。
------ 编辑 ------ 通过我下面的评论,这是我当前的代码。当前错误是:“第 16 行错误,字符 40:解析错误。需要分号”
function doStuff() {
function readCookie(name) {
var cookieName = name + "=";
var cookieSplit = document.cookie.split(';');
for(var i=0;i < cookieSplit.length;i++) {
var cookies = cookieSplit[i];
while (cookies.charAt(0) === ' ') cookies = cookies.substring(1,cookies.length);
if (cookies.indexOf(cookieName) === 0) return cookies.substring(cookieName.length,cookies.length);
}
return null;
}
function viewAppend() {
var oldCookie = readCookie('viewCount');
if (oldCookie === null) {
document.cookie = "viewCount="1"; path=/";
} else {
var views = parseInt(oldCookie) + 1;
document.cookie = "viewCount="+views+"; path=/";
}
}
}
解决方案
您在此行有引用问题:
document.cookie = "viewCount="1"; path=/";
它应该是:
document.cookie = "viewCount=1; path=/";
您不需要在 cookie 的值周围加上引号(如果这样做,您可以转义它们或在整个字符串周围使用单引号)。
推荐阅读
- php - AJAX更新和删除错误但仍然成功错误
- javascript - 如何在 Qualtrics 中使用 moment js 提供关于睡眠日记的个性化反馈?
- c++ - 如何为我的 application.exe/executable QT 设置自定义图标,我使用了 Visual Studio 2019
- html - HTML页面大小,高度换行内容
- drools - 跨环境的规则移动/提升(比如 UAT 到生产环境)
- c# - 向不可变类型添加信息的公认模式是什么?
- python - 在 Python 3 中捕获特定的 OSError 异常
- node.js - 如何正确地将模块导入文件(Node.js)
- python - 在for循环python中运行elif语句
- android - android kotlin 中的 http 请求