我的目标是检查Cookie是否存在,是否确实获得了该值,并使用更新日期重新添加。如果它不存在(会话的第一次网页浏览),则生成一个随机数并将其应用于cookie。
以下是一小部分脚本。语法{{somestring}}是Google-Tag-Manager语法,它只是引用一个返回值的函数。
{{random number}} //returns a random number
{{hform_num cookie}} //returns the value of cookie hform_num
我遇到的问题是,我的cookie的值有时(约为5)并未定义。它应该始终具有数值。我尝试过使用不同的语法和代码结构。我最近了解了三元运算符,所以尝试了如下所示。我还尝试了var somevar = something || something_else
来获得第一个非空值。但我仍然看到奇怪的未定义通过。
这里有一些片段:
var rn = {{random number}};
var hcook = {{hform_num cookie}}; // might be null
var num = hcook || rn;
document.cookie='hform_num=' + num + '; path=/; domain=.example.com; expires=' + date + ';';
这是一个类似的脚本:
var rn = {{random number}};
var hcook = {{hform_num cookie}}; // might be null
var num = hcook ? hcook : rn;
document.cookie='hform_num=' + num + '; path=/; domain=.example.com; expires=' + date + ';';
又来了另一个: 这是一个类似的脚本:
var num = {{hform_num cookie}} ? {{hform_num cookie}} : {{random number}};
document.cookie='hform_num=' + num + '; path=/; domain=.example.com; expires=' + date + ';';
我有什么明显的遗失吗?我的代码是"声音"?有没有传统的方法来声明两个变量,然后根据两个变量的第一个非空值为新变量赋值?