- PR -

WebフォームでXボタンを押した後の処理

投稿者投稿内容
Heat
会議室デビュー日: 2005/06/17
投稿数: 3
投稿日時: 2005-07-05 19:24
汎用コンピュータと接続する、Webフォームアプリケーションを
作成しています。IEのXボタンを押したときに、汎用コンピュータ
との切断処理をさせたいのですが・・・。

Webフォームには、WindowsフォームのClosingような命令は存在しないの
でしょうか? いっそのことXボタンを表示しない方法は無いかと探し
てみたのですが、Webフォームの場合は、Xボタンを消すこともできない
ようですし。

何か良い方法がありましたら、アドバイスいただけるとうれしいです。

また、複数のパソコンでWebフォームの開発をしているのですが、
他のパソコンで開発したプロジェクトを編集することは出来ないのでしょ
うか?編集したいパソコンのwwwrootにプロジェクトを貼り付けしても、
開くことができません。

初心者なもので、突拍子もない質問かもしれませんが、よろしくお願い
致します。





[ メッセージ編集済み 編集者: Heat 編集日時 2005-07-05 19:32 ]
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2005-07-05 19:32
引用:

Heatさんの書き込み (2005-07-05 19:24) より:
IEのXボタンを押したときに、汎用コンピュータとの切断処理をさせたいのですが・・・。

Webフォームには、WindowsフォームのClosingような命令は存在しないの
でしょうか? いっそのことXボタンを表示しない方法は無いかと探し
てみたのですが、Webフォームの場合は、Xボタンを消すこともできない
ようですし。




クライアントのブラウザで×ボタンが押されたことをサーバが知ることはできません。
もし、ブラウザの×ボタンを消すことができたら危険です。
というわけで、基本的には出来ません。
本来Webアプリケーションをそういう作りにするべきではないでしょう。

どうしてもやりたい場合、簡便な方法として、

通常の操作をしているブラウザのウィンドウとは別に
ブラウザのウィンドウを開いておいて、そちらは一定間隔で、
操作をするブラウザのウィンドウが閉じられた事を監視する。
もし、閉じられたら、サーバに通知する。

といった事が浮かびますが、もちろんその監視用のブラウザのウィンドウが閉じられたらおしまいです。
Heat
会議室デビュー日: 2005/06/17
投稿数: 3
投稿日時: 2005-07-05 19:38
早速の回答、本当にありがとうございます。
やはり、WebフォームでXボタンを感知することは出来ないのですね。

ありがとうございました。
マーサ
ベテラン
会議室デビュー日: 2004/11/26
投稿数: 87
投稿日時: 2005-07-06 14:50
引用:

Heatさんの書き込み (2005-07-05 19:38) より:
早速の回答、本当にありがとうございます。
やはり、WebフォームでXボタンを感知することは出来ないのですね。



いいえ、一応あります。
JavaScriptのonUnloadです。
Windowを閉じる時にイベントを拾ってくれます。

但し、Window自体は閉じられてしまいます(メモリ上には存在するが、見えない状態)
このイベントにより処理を行う事は出来ます。
がるがる
ぬし
会議室デビュー日: 2002/04/12
投稿数: 873
投稿日時: 2005-07-06 15:34
どもです。がると申します。
当事者以外も見るだろうということで、蛇足かとも思いましたが念のため。
引用:

マーサさんの書き込み (2005-07-06 14:50) より:
いいえ、一応あります。
JavaScriptのonUnloadです。
Windowを閉じる時にイベントを拾ってくれます。


上記で一応感知可能ですが、当然のことながら「クライアント側で
JavaScript無効」にしていれば拾えなくなります。
なのであくまでも「拾えないかもしれないけど拾えたらラッキー」
くらいに考えておくとよいかと :-P
葉瀬崎浩樹
大ベテラン
会議室デビュー日: 2005/06/28
投稿数: 115
お住まい・勤務地: 兵庫県
投稿日時: 2005-07-06 15:37
さらに蛇足。

onUnloadだと、リンク先に遷移するときでも
javascriptが走りますよね。。
ブラウザ上の現在のページが破棄されるタイミングで
発生するようですから。

<Body onUnload="javascript:alert('ええー');">
こんなコードですかね。

[追記]
リロードでも、発生しますねー。

[ メッセージ編集済み 編集者: 葉瀬崎浩樹 編集日時 2005-07-06 15:40 ]
マーサ
ベテラン
会議室デビュー日: 2004/11/26
投稿数: 87
投稿日時: 2005-07-06 15:57
引用:

上記で一応感知可能ですが、当然のことながら「クライアント側で
JavaScript無効」にしていれば拾えなくなります。
なのであくまでも「拾えないかもしれないけど拾えたらラッキー」
くらいに考えておくとよいかと



はい、確かにその通りです
そのシステムを何処の誰が使用するか?にも関わって来ますね。

例えば、社内や関連者しか使用しないようなら、JavaScriptを有効に設定しておく事を前提にする(仕様で決定付け)とか。
不特定多数の人が使用するようであれば、アウトですが。。。
まぁ、閉じられる(た)時に処理をしようとするのは実際問題厳しいですね
Heat
会議室デビュー日: 2005/06/17
投稿数: 3
投稿日時: 2005-07-08 08:49
みなさん、いろいろとご意見ありがとうございます。
JavaScriptは確かに、ブラウザ側で有効になっていないと無意味ですね…。
やはり、ブラウザを閉じたときの処理というのは難しいのですね。

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