在页面A上,我点击了"链接A" s.tl()
我填写evar1
并触发事件1的地方。此链接A指向页面B
链接中的代码点击第A页
$(document).on('click','.nav.navbar-nav.subnav-breadcrumb a',function(){
if($(this).text().toLowerCase().indexOf('create group')!=-1){
s.events = "event1";
s.linkTrackEvents = "event1";
s.eVar1 = "Step 1";
s.linkTrackVars = "eVar1,events";
s.tl(true,'o','Step 1');
}
});
在页面B的页面加载中,在do plugins部分中,我尝试通过以下代码获取prev eVar
调用中设置的s.tl()
的值
function s_doPlugins(s) {
console.log(s.getPreviousValue(s.eVar1,'cookie_name','event1')
}
但是,我得到的值是' undefined'。 getPreviousValue()
插件不适用于之前的s.tl()
来电吗?我在这里做错了什么?
答案 0 :(得分:1)
As mentioned in the documentation,因为你正在使用s.getPreviousValue()
的第三个参数,它只会在设置指定事件时存储和触发(在你的case和doc示例中,都是event1
})。
由于您在链接点击中设置了event
,s.getPreviousValue()
会触发s_doPlugins
,因为所有s.t()
和s.tl()
来电都会调用cookie_name
,所以此时您应该在s_pers
Cookie中看到值(如果您使用的是组合Cookie插件,请查看event1
Cookie)。
但是,在下一页(第B页)s_doPlugins
未设置,因此当s.t()
调用页面s.getPreviousValue()
来电时,s.events
s.events
}将不会更新/返回以前的值。
换句话说,当您在第3个参数中指定事件时,当undefined
中存在指定的事件时,将触发仅插件。基本上它首先做的是检查是否存在第3个arg,然后通过{{1}}查看它是否在那里。如果不是,那就是它,函数结束时没有返回值(这就是你返回{{1}}的原因)。
我不确定你实际想要完成什么,但根据我的经验,在第三个参数中指定一个事件并没有很多用例。