2012-02-13 97 views
0

即使在用戶點擊瀏覽器後退按鈕後,是否可以繼續顯示同一頁面?即使點擊瀏覽器後退按鈕,如何顯示當前頁面

它就像一個多步表單,它在提交時會重定向到結果頁面,並且一旦表單被提交,我不希望用戶能夠使用瀏覽器返回到任何以前的頁面按鈕。所以我想繼續在點擊後退按鈕時向用戶顯示相同的結果頁面。只需單擊後退按鈕上的URL就可以更改爲歷史記錄中的以前的URL,但我不希望用戶返回任何上一頁。

有人可以建議我有關如何實現,如果可能做到的任何想法。

EDIT:假設有3個步驟的一些過程,然後象../step1../step2../step3../resulting page所生成的頁面。用戶可以使用後退和前進按鈕來執行這些步驟,但是一旦提交了步驟3並且用戶位於../resulting page,我希望用戶只顯示上一個顯示頁面的URL,同時保持結果頁面不變。

+0

我恨聽起來居高臨下,但一個簡單的[谷歌搜索](http://www.google.com.au/webhp?hl=en&btnG=Google +搜索#sclient = PSY-AB&HL = EN&安全=關閉&站點= webhp&源= HP&q = HTML +禁用+背部+按鈕&PBX = 1&OQ = HTML +禁用+背部+按鈕&水溶液= F&AQI = G1G-V3&AQL =&gs_sm = 3&gs_upl = 1209l4373l0l4573l24l17l0l5l5l2l365l5119l2-9.8l20l0&BAV = on.2,or.r_gc.r_pw。,cf.osb&fp = 6d89908411f0d802&biw = 1880&bih = 927)返回了大量的答案。你有沒有嘗試過這些結果? – 2012-02-13 03:18:49

+0

@ChristianVarga:「繼續點擊後退並查看相同頁面」的結果?不,我不會碰到類似的東西。 – skip 2012-02-13 03:26:27

+0

你正從錯誤的方向考慮它。你甚至點擊了我鏈接到的搜索結果嗎?這些解決方案解決您的確切問題,但不是以您想的方式:) – 2012-02-13 03:33:56

回答

0

你不能修改瀏覽器的後退按鈕,因爲它是內置的。

+0

我在想,如果在問題中問的功能可以以某種方式實現。我不想更改瀏覽器後退按鈕的內置功能。 – skip 2012-02-13 03:28:36

3

無論何時你發現自己在想:「我不希望用戶...」,你應該停止自己那裏。用戶負責。他們應該能夠做任何他們想做的事情。試圖阻止他們做某事類似於告訴他們該做什麼。

相反,您只需在他們做某事時做出適當的反應。在這種情況下,如果他們使用後退按鈕,那麼你應該做一些適當的事情。首先,你應該設計你的應用程序,這樣如果他們在完成該步驟後重新請求一個頁面,它就會將它們重定向到別的地方。

其次,您需要使緩存過期,以便當它們返回時,頁面過期並且不會在不刷新頁面的情況下重新顯示。

因此,如果頁面已經完成,並且前面的步驟被重新請求,您只需將它們重定向回適當的頁面。您通常通過在頁面中設置某種唯一鍵來執行此操作,以便您可以知道以前完成的頁面是否被重新請求。

5

是的,你可以使用下面的JavaScript代碼

function backButtonOverride() 
{ 
    setTimeout("backButtonOverrideBody()", 1); 
} 

function backButtonOverrideBody() 
{ 
    // Works if we backed up to get here 
    try 
    { 
     window.history.forward(1); 
    } 
    catch (e) 
    { 
     // OK to ignore 
    } 
    // Every quarter-second, try again. The only 
    // guaranteed method for Opera, Firefox, 
    // and Safari, which don't always call 
    // onLoad but *do* resume any timers when 
    // returning to a page 
    setTimeout("backButtonOverrideBody()", 1000); 
} 

if (window.addEventListener) // W3C standard 
{ 
    window.addEventListener('load', backButtonOverride, false); // NB **not** 'onload' 
} 
else if (window.attachEvent) // Microsoft 
{ 
    window.attachEvent('onload', backButtonOverride); 
} 
相關問題