2012-09-17 48 views
1

我想要刪除所有的cookie,如果我的頁面正在導航到其他頁面或關閉,否則我想讓頁面正常刷新。背後的原因是Clearing cookie for tabs要檢查頁面正在刷新或導航到另一個頁面

所以我的問題是:
我們如何能夠知道該頁面是刷新或導航或關閉?

我嘗試使用

window.onbeforeunload = function() { 
    var old_url= window.location.href; 
    var new_url= /* I dont know how to get new URL here */; 
    if(old_url == new_url){ 
     return true; 
    } 
    else { 
     return false; 
    } 
} 

它不工作:(
是否有任何其他的方式來做到這一點?

+0

您不能將這些值存儲在自動在頁面卸載中丟失的機制中。比如viewState或隱藏字段? –

+0

謝謝丹尼爾。請檢查我的答案,並讓我知道是否有任何缺陷。 –

+0

爲什麼要在導航到其他頁面時清除cookie? – dotNETbeginner

回答

1

我宣佈在JavaScript中的全局變量。

<script type="text/javascript"> 
    var is_refresh_true = true; 
</script> 

而且每當我試圖刷新我的網頁使用javascript我只是將變量值更改爲false
對於前:

<script type="text/javascript"> 
    function Callme(){ 
     is_refresh_true = false; 
     window.location.href = window.location.href; 
    } 
</script> 

而且onunload的身體的事件:

function DeleteCokies() {    
    if (is_refresh_true) { 
      deleteAllCookies(); 
    } 
} 

它不是一個完美的解決方案,但對我的作品。
但我仍在等待完美的答案。如有人發現,請回復。

0

如果不設置cookie的任何到期,將與會話清除(即,當你關閉瀏覽器)..

如果您導航到其他網頁,我不看不到任何問題,在其他頁面上的餅乾..和假設,如果你再回來到同一頁面,它會表現出同樣的標籤..

0
var confirmOnPage = function() { 

    function del_cookie(name) 
    { 
     document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;'; 
    } 

};

window.onbeforeunload = confirmOnPage;

相關問題