トップ回答者
ALT+F4を禁止したい

質問
回答
-
marumusisan さんからの引用 表題の通り、「ALT+F4」のウインドウクローズイベントを禁止したいのですが、
それは Web ページの内側からできることの範疇を超えています.
ついでに,Alt+F4 を禁止にするだけでは,ブラウザが勝手に閉じられることを防ぐには不十分です.
多くのブラウザは,ブラウザ自体の動作に影響を与える拡張機能のインストールができるようになっていて,marumusisan さんのやろうとしていることはそのブラウザ拡張の範疇でしょう.
ブラウザをアプリケーションコンテナに使いたいという要望があるのは,ブラウザ提供側自体よく把握しています.
「ブラウザがあるタイミングで閉じられないようにできれば (サービスの提供側としては) 楽なのに」という要望に対し,そのように改造したブラウザを配布したり,拡張機能をインストールすることでそのようにブラウザの動作を上書きしたりということはおそらく可能です.
実際,Internet Explorer 専用であった Windows Update は,(閉じる禁止の例ではないですが) ActiveX コントロールによってブラウザを拡張し,アップデート配布ツールに転用した例とも言えます. Vista でやめましたけど.
しかし,単なる Web ページの提供を超えて,バイナリコンポーネントの提供まで手を出してしまうことには明らかなデメリットもあります.まず利用者のソフトウェア環境のバージョンを厳密に意識しなければなりませんし,拡張のアップデートの仕組みや,インストール権限の問題など,サポートは明らかに複雑になります.もちろん自分でその仕組みを作り上げるのは大変なので,最近なら ClickOnce のような仕組みにのっかる形でなんとか導入できるかな,というのがよくあるパターンでしょうか.
不特定多数のユーザを相手に,こういったサポートコストと戦うのは大変なので,一般向けサイトで最近こういう手法は下火と.だから,実装は大変でもなんとかサービス側の工夫で対応しようということになるんですよね?
今回は相手が IE 6.0 SP1 固定ということで,業務利用等の限られた状況にあって,利用者に使用環境を強制できるのかもしれませんが,そうであれば,バイナリモジュールを各端末にインストールすることで,ブラウザが閉じられることは一応防げるのではないかと思います.
もちろん,そのモジュールに不具合があれば,全台のアップデートが必要になるなど,Web サービスのみで完結させるのに比べれて無視できない別のリスクが生まれます.
ケースバイケースで執るべき手段を選ぶんじゃないでしょうかね.
すべての返信
-
marumusisan さんからの引用 表題の通り、「ALT+F4」のウインドウクローズイベントを禁止したいのですが、
それは Web ページの内側からできることの範疇を超えています.
ついでに,Alt+F4 を禁止にするだけでは,ブラウザが勝手に閉じられることを防ぐには不十分です.
多くのブラウザは,ブラウザ自体の動作に影響を与える拡張機能のインストールができるようになっていて,marumusisan さんのやろうとしていることはそのブラウザ拡張の範疇でしょう.
ブラウザをアプリケーションコンテナに使いたいという要望があるのは,ブラウザ提供側自体よく把握しています.
「ブラウザがあるタイミングで閉じられないようにできれば (サービスの提供側としては) 楽なのに」という要望に対し,そのように改造したブラウザを配布したり,拡張機能をインストールすることでそのようにブラウザの動作を上書きしたりということはおそらく可能です.
実際,Internet Explorer 専用であった Windows Update は,(閉じる禁止の例ではないですが) ActiveX コントロールによってブラウザを拡張し,アップデート配布ツールに転用した例とも言えます. Vista でやめましたけど.
しかし,単なる Web ページの提供を超えて,バイナリコンポーネントの提供まで手を出してしまうことには明らかなデメリットもあります.まず利用者のソフトウェア環境のバージョンを厳密に意識しなければなりませんし,拡張のアップデートの仕組みや,インストール権限の問題など,サポートは明らかに複雑になります.もちろん自分でその仕組みを作り上げるのは大変なので,最近なら ClickOnce のような仕組みにのっかる形でなんとか導入できるかな,というのがよくあるパターンでしょうか.
不特定多数のユーザを相手に,こういったサポートコストと戦うのは大変なので,一般向けサイトで最近こういう手法は下火と.だから,実装は大変でもなんとかサービス側の工夫で対応しようということになるんですよね?
今回は相手が IE 6.0 SP1 固定ということで,業務利用等の限られた状況にあって,利用者に使用環境を強制できるのかもしれませんが,そうであれば,バイナリモジュールを各端末にインストールすることで,ブラウザが閉じられることは一応防げるのではないかと思います.
もちろん,そのモジュールに不具合があれば,全台のアップデートが必要になるなど,Web サービスのみで完結させるのに比べれて無視できない別のリスクが生まれます.
ケースバイケースで執るべき手段を選ぶんじゃないでしょうかね.