- PR -

「戻る」ボタンのイベント

1
投稿者投稿内容
みのる
大ベテラン
会議室デビュー日: 2003/07/03
投稿数: 100
投稿日時: 2003-09-25 19:17
こんにちはー。

ASP.NET(VB.NET)で開発しております。

「戻る」ボタンをクリックした場合の処理はどうしたらいいか
悩んでます。

「戻る」ボタンを非表示にするのではなく、「戻る」ボタンの
クリックイベントによってコントロールをしたいのですが。。。

ASP.NETはサーバ側のプログラムなのでやはり、JavaScriptですか
まゆりん
ぬし
会議室デビュー日: 2002/08/12
投稿数: 539
お住まい・勤務地: よこはま
投稿日時: 2003-09-25 19:35
あのー、「戻る」ボタンってHTMLコントロールですか?サーバコントロールですか?
そこが分らないと回答できないのですが・・・。

引用:

みのるさんの書き込み (2003-09-25 19:17) より:
「戻る」ボタンを非表示にするのではなく、「戻る」ボタンの
クリックイベントによってコントロールをしたいのですが。。。


???
ごめんなさい、ちょっと意味がわからないです。
ボタンのクリックイベントの方法が知りたいのに非表示って?

[ メッセージ編集済み 編集者: まゆりん 編集日時 2003-09-25 19:40 ]
小野@どっとねっとふぁん
ぬし
会議室デビュー日: 2001/10/30
投稿数: 402
投稿日時: 2003-09-25 19:48
「戻る」ボタンがブラウザの「戻る」ボタンだとすると、このイベントを
サーバ上でとることはできません。
ブラウザによっては自分が持っている内部のキャッシュから前のページを
表示するだけですから、この場合、そもそもサーバに接続にいきません。

#普通はそうなってるんだっけかな。
まゆりん
ぬし
会議室デビュー日: 2002/08/12
投稿数: 539
お住まい・勤務地: よこはま
投稿日時: 2003-09-25 20:30
引用:

小野@EACさんの書き込み (2003-09-25 19:48) より:
「戻る」ボタンがブラウザの「戻る」ボタンだとすると、このイベントを
サーバ上でとることはできません。
ブラウザによっては自分が持っている内部のキャッシュから前のページを
表示するだけですから、この場合、そもそもサーバに接続にいきません。

#普通はそうなってるんだっけかな。



あ、ブラウザの「戻る」機能の話でしたか・・・。
クライアント側のキャッシュの状態に左右されるからお勧めできませんね。
というより、Webアプリを使用する上でその行為はご法度だと教えられていましたので、
今までの開発ではあえてブラウザの「戻る」機能を使わせないようにしてきました。

#ちなみに、、「戻る」ボタンだけではなくてBackspaceキーやAlt+十字キーの左右でも
#同じ動きをします。(IE6で確認)

・・・って違ってたらゴメンナサイ。

-----------------------------------------------
#あと右クリックメニューでも戻ることが出来ます。

[ メッセージ編集済み 編集者: まゆりん 編集日時 2003-09-25 20:31 ]
みのる
大ベテラン
会議室デビュー日: 2003/07/03
投稿数: 100
投稿日時: 2003-09-26 09:15
書き方が悪くて申し訳ございません。

「戻る」ボタンはIEのボタンのことです。

もちろん、WEBアプリケーションなんでエンドユーザには
IEの「戻る」ボタンや「BackspaceキーやAlt+十字キーの左右」は
使用しないようにします。

間違えて使ってしまった場合の想定した場合、エラー表示してメニュー画面を
表示する(移動する)っていうのがベストかなと思っています。
(せめてエラー表示ができたらいいのですが)

ASP.NETの世界ではないと思いますが、全く方法が分からない状態で
ご相談いたしました。


きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2003-09-26 09:23
みのるさん、お早うございます。

引用:

ASP.NETはサーバ側のプログラムなのでやはり、JavaScriptですか


ブラウザの「戻る」機能の抑制は、JavaScriptや、<meta http-equiv="Expires" content=".....">とか<meta http-equiv="Pragma" content="no-cache">あたりを使って実現出来るかも知れませんが、クライアント側の環境に左右されるので、別の方法を考えた方がよいかも知れませんね。
OSやブラウザを統一しても、バージョン、SP、その他のパッチによって(もちろん、個別の設定によっても)、動作が変わってくる可能性がありますから。

「戻る」事によって、キャッシュされた古い情報が表示されるのはまあ、仕方ないとして、そこから更新系の処理を行って不整合が発生するのだけは防ぎたいですよね?
この場合、例えばSessionとViewStateの両方にカウンタを保持してポストバック毎にインクリメントし、双方の値が一致するかどうかをチェックする、という手はどうでしょうか。
そういうコンポーネントを作ってしまえば、後々重宝しますし。
みのる
大ベテラン
会議室デビュー日: 2003/07/03
投稿数: 100
投稿日時: 2003-09-26 10:07
きくちゃんさん、本当にありがとうございます。


『SessionとViewStateの両方にカウンタを保持してポストバック毎に
インクリメントし、双方の値が一致するかどうかをチェックする、という手』

この方法で実現したいと思います。

と言っても、
SessionとViewStateをあんまり理解していないので、勉強です。
(勉強不足を実感しました)


ありがとうございました。
1

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