检测域删除以删除Cookie

时间:2010-08-26 19:27:27

标签: javascript cookies

当用户访问其网站时,客户正在寻找简短的启动javascript动画第一次访问其他域后。只要他们不在网站内导航。

基本上,我想设置一个cookie并删除它,如果他们离开域或捕获URL栏中发生的事情,我意识到这可能是出于安全/隐私的原因,但是想检查一下这里的genii可能有一个黑客的想法。这是我最接近完全解决方案的失败尝试:

function del_cookie() {
    var baseUrl= 'mydomain.com';

    var currUrl = document.location.href;                                                                            

    var splitUrl = currUrl.split('/');                                                                               

    var currBaseUrl = splitUrl[2];                                                                                   

    if(currBaseUrl != baseUrl) {                                                                                     
    document.cookie = "animation=;path=/;expires=Thu, 01-Jan-1970 00:00:01 GMT";                                     
    }               
} 

<body onunload="del_cookie()">

当然,currUrl此时还没有更新到新的URL,所以这不起作用。

似乎我可能拥有的最佳解决方案是仅控制DOM内部点击和更改的动画,并使地址栏不受影响。但其他人有没有想法?

3 个答案:

答案 0 :(得分:0)

只是添加到这个问题(也在处理同样的问题)。

基本上当你在mydomain.com上并浏览到mydomain.com/page时,del_cookie知道它仍然在mydomain.com内,所以没有cookie被删除。但是当你点击雅虎书签或输入yahoo.com时,currUrl仍然认为你还在mydomain.com上。有没有办法检索即将加载的URL?

以下是用户想要的流程: 1:打开一个新的单个浏览器窗口 2:去mydomain.com 3:看加载屏幕。 4:如果你点击mydomain.com上的链接,它将不会重新加载动画和&amp;加载屏幕 5:那我们就说我去www.digg.com或www.gizmodo.com 6:离开gizmodo.com 7:决定回到mydomain.com 8:我们应该再次看到启动页面。

“启动页面”是一个div,当javascript检测到没有设置cookie时显示。它加载启动页面动画并设置会话cookie。

答案 1 :(得分:0)

如果我了解你,你想要一个启动画面显示在网站的任何入口点,而不仅仅是主页(例如。)

一种技术可能是检查HTTP_REFERER标头(原文如此)。如果它是空的或者是与当前站点的域不同的域,则很可能是第一次访问[对于此会话。]

-Oisin

答案 2 :(得分:0)

看起来最终,这是不可能的。为了后人的缘故在这里回答。