- PR -

ブラウザの戻るボタンをクリックしてページを戻したときの動作について

1
投稿者投稿内容
Sherpa
会議室デビュー日: 2004/06/17
投稿数: 7
投稿日時: 2004-08-09 12:00
こんにちは
環境:WinXP+VS2003、VBで作成しています
状況:
test1.aspxからtest3.aspxへ移動するページを作成
test1.aspxにはtest2.aspxを子画面としてポップアップさせる
test1.aspxからtext2.aspxを子画面として開き、子画面を閉じる、
その後、test3.aspxへページ遷移後、ブラウザの戻るをクリックすると
test1.aspxと共に、test2.aspxもポップアップしてしまう。

コード:
test1.aspx
'ページ遷移用
Private Sub LinkButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LinkButton2.Click
Response.Redirect("test3.aspx")
End Sub

'ページポップアップ用
Private Sub LinkButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LinkButton1.Click
' 取得した名称を格納するコントロールへのパスを作成する
Dim cntl As System.Web.UI.Control = CType(sender, WebControl)
Dim strScript As New System.Text.StringBuilder
strScript.Append("<script language=javascript>")
strScript.Append("var features = 'Height=400,Width=300,scrollbars=yes,resizable=yes")
strScript.Append(",toolbar=no,location=no,directories=no,status=no,menubar=no")
strScript.Append(",alwaysRaised=yes,dependent=yes")
strScript.Append("';")
strScript.AppendFormat("window.open('test2.aspx?target={0}','self',features);", cntl.ClientID)
strScript.Append("</script>")
Page.RegisterStartupScript("openwindow", strScript.ToString)

End Sub

ブラウザの戻るボタンを押したときにポップアップを出さなくする方法を
ご教授いただきたいと思います。
よろしくお願いします。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-08-09 12:37
 まず、なぜポップアップが出てくるのか、それを知ってください。


 それを知っているなら、答えも出ているでしょう?
Sherpa
会議室デビュー日: 2004/06/17
投稿数: 7
投稿日時: 2004-08-09 13:36
Jittaさん返信ありがとうございます。
戻るをクリックしたときには
<script language=javascript>var features 〜中略〜 <script>
が書き出されている状態だからですよね。

戻るをクリックしたときにJavaScriptが
書かれて無い状態にすればよいと思うのですが。
答えわからないです。。。

※ページポップアップ用のコードはJittaさんのWWWを参考にさせていただきました。
※ありがとうございます。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-08-09 16:07
 う〜ん?その、「書かれている状態」というのは、“どこから”持ってくるのでしょう?


 サーバからスクリプトを書き出します。クライアントは、それをキャッシュします。戻るボタンをクリックすると、クライアントは“キャッシュから”ページを持ってきます。したがって、戻るボタンで「書き出されていない」ページを持ってくることはできないのです。


 右上の「検索」をクリックして、検索文字列を「戻る(スペース)ボタン」、Insider.NET会議室の中から探す、をしてみてください。「戻る」ボタンを無効にするには、という質問が2〜3あります。どれも回答は「できません」となっています。
 ただし、「キャッシュ」という点に注目し、「キャッシュの有効期間」を設定することで、ブラウザに「有効期限が切れています」というメッセージを出させることはできます。けれども、この方法でも、ページを取得する為の情報を再提出して、「書き出された」ページをもらってくるので、やはりポップアップが表示されます。
 この方法にプラスして、セッション情報に「今どのページまで進んでいるか」を持たせ、「戻る」ボタンで戻ったと思われる時には別のページへ飛ばす、ということは、できるかもしれません。
1

スキルアップ/キャリアアップ(JOB@IT)