2016-12-14 16 views
1

我的網頁上有一個「返回上一頁」鏈接。我用下面的代碼去前一頁經典asp網頁上的返回鏈接

document.write('<a href="' + document.referrer + '"><span class="style2">Return to previous Page</span></a>'); 

如果頁面回發那麼上面的代碼不工作,所以我想下面的代碼去到前一頁,但這不起作用正確的。 這裏是我

If InStr(LCase(Request.ServerVariables("http_referer")), "technicalinfo.aspx") > 0 Then 
    Session("link") = "technicalInfo.aspx" 
Else If InStr(LCase(Request.ServerVariables ("http_referer")), "Prodinfo.aspx") > 0 Then 
    Session("link") = "ProdInfo.aspx" 
End If 

的錯誤出現在這裏,當我試圖將用戶重定向到由會話變量

<%dim URL as string = Session("link") %> 
<a href=URL>Go Back to previous Page</a> 

上面的代碼不起作用提供的鏈接。我如何根據Session變量的值回到上一頁?

+0

。你的想法,如果用戶的瀏覽器阻止了'Referer'頭工作。如果這是一個嚮導過程,那麼你應該知道前一頁是什麼,否則這個鏈接爲用戶提供什麼樣的好處,如果他們只需點擊瀏覽器的後退按鈕? – Dai

+0

我知道我的上一頁是什麼,這就是爲什麼我將它存儲在會話變量中。 – Anjali5

+0

但是爲什麼?這是什麼商業案例?它如何使用戶受益或改善您的應用程序? – Dai

回答

0

您最好使用客戶端browser history API來做到這一點。

要實現一個後退按鈕,你會做這樣的事情:

<button onclick="window.history.back()">Back</button>

+0

這可能不適用於所有情況,特別是在傳統的ASP中,它的工作方式是執行POST,然後是GET,IIRC,因此回到歷史記錄中可以進入POST請求,而不是以前的GET –

+0

經典的ASP絕對是一個PITA,我不認爲這個問題會有一個非常通用的解決方案,可能需要使用瀏覽器歷史API和'location.assign' /'location.replace'取決於是否需要更新瀏覽器歷史記錄當最近我必須這樣做時,我將整個傳統的ASP應用程序放在一個iframe中,並從外部控制它。攔截所有錨點a nd表單提交以及一些猴子補丁來處理Ajax等。 – cchamberlain