簡體   English   中英

如何使用瀏覽器中的“返回”按鈕檢測用戶打開的頁面?

[英]How to detect that user open page using BACK button in browser?

想法是顯示消息,這將通知用戶,當他使用“后退”按鈕時,應用程序的Ajax部分可能無法正確啟動。 是的,有很多討論,但沒有解決方案。 從發現的內容中最好:在服務器端存儲有關最后一頁的信息,並通過ajax將當前頁面與服務器信息進行對照。 但是以這種方式,同一用戶將不可能使用2個瀏覽器窗口。

您可能要使用url#(hash)進行開發以存儲客戶端狀態

看一下http://www.asual.com/swfaddress/,Flash和ajax使用它來處理ajax的瀏覽器歷史記錄,

Silverlight 3.0使用類似的技術,在URL中將#(hash)用於狀態。

真正的解決方案是讓客戶端維護狀態,而不是服務器。 如果您在服務器上保留了太多客戶端狀態以致后退按鈕不起作用,則您正在違反Internet的法律:)

此解決方案可能適用於您的情況,也可能不適用於您的情況,並且可能不適用於您的瀏覽器。 在IE7上,它似乎對我有用,其中每個頁面在URL查詢字符串中引用了一個不同的“小部件ID”-

//try to detect a bad back-button usage; 
//widgetId not match querystring parameter did=#
var mustReload = false;
if (location.search != null && 
    location.search.indexOf("&did=") > 0)
{
    var urlWidgetId = location.search.substring(
        location.search.indexOf("&did=")+5);
    if (urlWidgetId.indexOf("&") > 0)
    {
        urlWidgetId = urlWidgetId.substring(
            0,urlWidgetId.indexOf("&"));
    }
    if (currentDashboard != urlWidgetId)
    {
        mustReload = true;
    }
}
if (mustReload)
{
     ... //reload the page to resynch here
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM