我在jQuery中使用以下插件来获取cookie:
https://code.google.com/p/cookies/
我遇到的问题不在于插件,而是在报价流程结束时何时以及如何删除Cookie。
我使用此网站的是六步在线报价和购买流程。
Omniture事件序列化sitestat跟踪应用于某些页面。此事件序列化必须包括事件的名称和我创建的随机数。
我有一个通用的功能,我在页面底部调用如下:
serialEvent('event21:', 'payment');
这是功能:
function serialEvent(eventNumber, eventName) {
var sessionID = jaaulde.utils.cookies.get('sessionID');
var remLength = 20 - eventName.length;
var remSession = sessionID.substr(sessionID.length - remLength, remLength);
var eventName = eventName + remSession;
s.events = eventNumber + eventName;
}
我需要在流程结束时删除cookie,谢谢你页面,但我还需要'serialEvent'函数的cookie'sessionID'。
由于函数是在页面底部调用的,我应该在之后编写cookie删除吗?这够强大吗?
我需要确保在删除cookie之前已成功调用该函数。
删除cookie的代码非常简单:
jaaulde.utils.cookies.del('sessionID');
谢谢:)
答案 0 :(得分:1)
您可以在流程结束时以及window.onUnload事件中删除cookie,以确保即使您在流程完成之前关闭窗口也会清除cookie。
答案 1 :(得分:1)
function serialEvent(eventNumber, eventName)
{
var ok = false;
try
{
var sessionID = jaaulde.utils.cookies.get('sessionID');
var remLength = 20 - eventName.length;
var remSession = sessionID.substr(sessionID.length - remLength, remLength);
var eventName = eventName + remSession;
s.events = eventNumber + eventName;
ok = true;
}
catch(e)
{
// todo: error handling (what has gone wrong?)
ok = false;
}
return ok;
}
通过这种方式,您可以确定是否正确调用了该函数。 ok
只有在正确执行整个函数时才会为真。
答案 2 :(得分:1)
serialEvent
函数中没有调用异步或定时器延迟的回调函数,所以你可以
serialEvent('event21:', 'payment');
之后。Javascript同步执行,因此您可以确保只在完成后才删除cookie。