2012-11-21 42 views
0

我不想通過瀏覽器的後退按鈕瀏覽我的返回歷史頁面。我如何做到這一點?如何防止瀏覽器的後退按鈕被點擊?

+7

不能和不應該做的。 – ahren

+0

你幾乎肯定可以解決*錯誤的問題。如果這是不適當的網頁在歷史上結束,尋求解決*那個問題。 –

+1

它可以在某種程度上完成......您可以刪除不希望用戶從瀏覽器的JS歷史記錄中返回的條目(假設您想阻止用戶返回到特定頁面)。但絕對不應該這樣做。不要這樣做! –

回答

0

您是指從網站註銷後?如果,所以我認爲這將有助於你:link

+0

不,我不想通過瀏覽器的後退按鈕返回。可能嗎? – Sharad

+0

如果只需點擊一次按鈕就可以,那麼您可以爲頁面中的所有按鈕和頁面加載事件提供這些設置,以便根本不可能。有這樣的網站,這阻止你回去,這可能不會顯示你的歷史。有點棘手,但它肯定會奏效。 – Dipak

1

你可以這樣做,但正如@Ahren所說你不應該這樣做。

您只需開發SPA(單頁應用程序)。 這種情況下,你將只有對web服務器和你的頁面的異步請求將被部分更新。 正如我通過標籤瞭解的,您正在使用asp.net進行開發。 所以你可以趕上如何在asp.net官方網站上做到這一點:Samples: A Tour through SPA

+0

如果用戶在另一個窗口中打開頁面,該怎麼辦?然後在原始頁面上執行,導致原始頁面在不同窗口中保持不一致。然後用戶採取單獨的頁面,並試圖再次做spaTH SPA並不旨在解決這個問題,我猜。這根本不是問題。簡單地說,網絡應用程序應該能夠準備好從「過時」頁面獲取請求。我不正確嗎? – horgh

+0

好吧,它並不能解決不一致的問題,因爲它在Web環境中是不可能的,SPA只會產生歷史問題,因爲通常情況下開發者需要自己模擬歷史步驟。我剛剛展示瞭如何構建無任何歷史記錄的Web應用程序。我也是不喜歡那種應用程序) –

+1

這不得不提到,國際海事組織)) – horgh

2

我同意達米恩的觀點,你在解決錯誤的問題。我寫了一篇博客文章在這

作爲Web開發人員,你有完全控制的服務器代碼,但只有在 腳本方面的客戶有限的控制。您甚至不能保證客戶端具有任何腳本功能(用戶 可能會禁用腳本,直到他們信任您的站點),因此 您不應該從客戶端的角度設計您的站點行爲 - 即嘗試禁用一個瀏覽器。
相反,如果你需要實現的行爲,這樣,當登出 用戶點擊返回按鈕,他們將被重定向到一個登錄頁面,你 需要設計您的網站,這會發生。 你的服務器端 設計應該推動客戶端行爲

完整的博客文章在這裏 -​​

雖然你可以使用JavaScript實現所期望的結果,你不能在所有模式保證在所有設備上一致的行爲(如 - 移動瀏覽器與腳本禁用)

正確地設計你的服務器端代碼會導致正確的客戶端的行爲,而不會破壞後退按鈕的預期行爲,有或沒有啓用腳本。

1

你可以過期緩存,你可以實現這個功能。

Response.Cache.SetExpires(DateTime.Now.AddDays(-1)); 
Response.Cache.SetCacheability(HttpCacheability.NoCache); 
相關問題