2016-12-14 1 views
1

私は私のウェブページの "前のページに戻る"リンクを持っています。私は、ページのポストバックが、その後、上記のコードは、私は、前のページに移動するには、以下のコードにしようとしています動作しない場合は、前のページ古典的なaspのウェブページのリンクを返す

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

に行くために、次のコードを使用していたが、これは動作しません。適切にどちらか。ここ は、私は上記のコードは動作しません

<%dim URL as string = Session("link") %> 
<a href=URL>Go Back to previous Page</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 

を持っているものです。 Session変数の値に基づいて前のページに戻るにはどうすればよいですか?

+0

:あなたはこのような何かをするだろう戻るボタンを実装するために

。これがウィザードのプロセスの場合は、前のページの内容を知っている必要があります。それ以外の場合は、ブラウザの戻るボタンを押すだけで、このリンクはユーザーに役立ちますか? – Dai

+0

私は前のページが何であるか知っています。それがセッション変数に格納されている理由です。 – Anjali5

+0

しかし、なぜですか?このビジネスケースは何ですか?ユーザーにとってどのようなメリットがありますか? – Dai

答えて

0

これを行うには、クライアントサイドbrowser history APIを使用することをお勧めします。あなたの考えは、ユーザーのブラウザブロック場合 `Referer`ヘッダーが動作しません

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

+0

これは、すべての場合、特に従来のASPで動作しない場合があります。POSTを実行し、その後にGET、IIRCを実行する方法でしたので、履歴に戻ってPOSTリクエストを取得します以前のGETではなく、 –

+0

古典的なASPは間違いなくPITAです。この問題に対する非常に一般的な解決策はないと思います。ブラウザ履歴APIと 'location.assign'の組み合わせを使用する必要があります。/'location.replace'ブラウザの履歴を更新する必要があるかどうかによって異なりますが、最近これを行う必要があるときに、従来のASPアプリケーション全体をiframeに投げ込み、外部から制御しました。すべてのアンカーを傍受するまた、AJAXなどを処理するための猿パッチもいくつか提出されています。 – cchamberlain

関連する問題