簡體   English   中英

如何通過瀏覽器后退按鈕處理用戶到達頁面?

[英]How do I handle user arrival-at-page via browser-back-button?

  1. 用戶訪問頁面 A 並點擊幾下,隨着他/她調整頁面狀態。
  2. 頁面 A 最終將用戶重定向到頁面 B
  3. 用戶單擊瀏覽器后退按鈕,在瀏覽器中再次看到頁面 A

我需要在第 3 步執行一些界面清理。

如何在頁面 A 中捕獲此事件?

我將做一些假設來提出一種不完全依賴於 javascript 的方法:

  1. 您在另一個答案的評論中指出,這是一個 ASP.NET 應用程序。 我將假設您只關心從 ASP.NET 應用程序中的另一個頁面按下后退按鈕的位置。
  2. 您可以控制在 ASP.NET 代碼隱藏中執行的服務器端代碼,用於相關頁面和需要“退出”的頁面。

如果這兩個條件都為真,那么您應該能夠使用Session 變量 只需在所有相關頁面上將當前頁面設置為由 session 維護的 currPage 變量,然后在頁面加載時檢查並使用它來調整頁面直接顯示的方式,或將值寫入隱藏字段/輸入/div。 您的 javascript 可以讀取並使用它來做出適當的反應。

如果您使用 go JS-read-and-execute 路由,您需要測試以確保在加載后加載按鈕后事件在所有瀏覽器上正確觸發。 Rionmonster 的鏈接中所述,有時 onload 事件可能不會在后退按鈕后觸發。 如果您從中發現問題,請使用此處提到的技巧來解決它。

這種類型的解決方案應該適用於任何使用能夠與 Session 變量交互的服務器端代碼的 Web 應用程序(例如,它也適用於 PHP、ZA7F5F35426B927411FC9231B56382173 等)。

注意:這有可能不像聽起來那么優雅。 在很多情況下,按下后退按鈕后,瀏覽器實際上可能不會從服務器中拉出新頁面。 如果測試表明這是一個問題,您可能需要使用一些 AJAX 技術在按下后退按鈕后向 JS 填充新鮮的信息。

除了可能設置 cookie 之外,由於瀏覽器安全限制,您不能這樣做。 一種解決方法是檢查用戶是否通過 onbeforeunload 或 onunload fire 離開頁面。

Would it be possible in your scenario to use the URL hash to navigate to page B and use AJAX and jQuery to load the new page? 因此,瀏覽器實際上並沒有離開頁面。 當用戶導航回來時,他們要做的就是將 URL hash 改回來。 然后,您可以捕獲hashchange事件以查看用戶是否已導航回頁面 A。

暫無
暫無

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

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