none
ASP.NETで開発時のIEの制御 RRS feed

  • 質問

  • VS2013でASP.NET(VB.net)の開発を勉強しているのですが、あるFormアプリ(VB6)をASP.NETへ移行しようと考えており、VB6では閉じるボタンを押せないように制御できたのですが、IEの閉じるボタン(×ボタン)やメニューの閉じるを押させないようにできるのかどうかわからないので投稿しました。

    もし分かる方がいらっしゃいましたらご教授ください。

    2014年9月29日 5:56

回答

  • Webアプリケーションはブラウザ上で動作します。単独の実行ファイルで動作するVB6とは異なることに注意して下さい。ブラウザも複数種類ありますので、IE限定でない場合は注意が必要な場合もあります。
    ブラウザの閉じるボタンの制御を行いたいのですから、ブラウザで実行できるコードが必要になります。例えば良く知られているように、javascriptがありますので、onbeforeunloadイベントを使って、以下のようにすることもできるでしょう。

    ブラウザの閉じるボタン(「×」)が押下された時のイベント
    http://lightgauge.net/javascript/javascript-tech/2871/

    Webアプリケーションはブラウザで動作するコード(クライアントサイド)と、Webサーバーで動作するコード(サーバーサイド)があることに注意して下さい。前者がjavascript等で、後者がVB.NET等になります。ブラウザを閉じる時の制御はブラウザの世界になりますから、Webサーバーとは関係ありません。よって、着眼点としては、javascript等のクライアントサイドでの制御を調べるようにされると良いと思います。

    なお、jQueryで閉じるボタンが非表示のダイアログを出せるようですので、要件に合えば使用することもできると思います。いずれにしてもjQueryをご存じなければ調べられると良いでしょう。


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/

    • 回答の候補に設定 星 睦美 2014年10月7日 1:01
    • 回答としてマーク njkcorp 2014年10月11日 19:50
    2014年9月29日 6:54
    モデレータ

すべての返信

  • > IEの閉じるボタン(×ボタン)やメニューの閉じるを押させないようにできる
    > のかどうかわからないので投稿しました。

    VB6 で作る Windows アプリと ASP.NET で作る Web アプリとは全く別物であることは理解されているでしょうか?

    ASP.NET Web アプリでは、サーバー側で動く VB.NET では何ともなりません。JavaScript で何とかするほかないです。例えば下記のように。

    ブラウザの閉じるボタンが押下された時の制御
    http://lightgauge.net/javascript/javascript-tech/2871/

    #サーバー側で動く VB.NET のコードで JavaScript をレンダリングできますから、その意味では「何ともなりません」とも言い切れないのですが。

    • 回答の候補に設定 星 睦美 2014年10月7日 1:01
    2014年9月29日 6:50
  • Webアプリケーションはブラウザ上で動作します。単独の実行ファイルで動作するVB6とは異なることに注意して下さい。ブラウザも複数種類ありますので、IE限定でない場合は注意が必要な場合もあります。
    ブラウザの閉じるボタンの制御を行いたいのですから、ブラウザで実行できるコードが必要になります。例えば良く知られているように、javascriptがありますので、onbeforeunloadイベントを使って、以下のようにすることもできるでしょう。

    ブラウザの閉じるボタン(「×」)が押下された時のイベント
    http://lightgauge.net/javascript/javascript-tech/2871/

    Webアプリケーションはブラウザで動作するコード(クライアントサイド)と、Webサーバーで動作するコード(サーバーサイド)があることに注意して下さい。前者がjavascript等で、後者がVB.NET等になります。ブラウザを閉じる時の制御はブラウザの世界になりますから、Webサーバーとは関係ありません。よって、着眼点としては、javascript等のクライアントサイドでの制御を調べるようにされると良いと思います。

    なお、jQueryで閉じるボタンが非表示のダイアログを出せるようですので、要件に合えば使用することもできると思います。いずれにしてもjQueryをご存じなければ調べられると良いでしょう。


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/

    • 回答の候補に設定 星 睦美 2014年10月7日 1:01
    • 回答としてマーク njkcorp 2014年10月11日 19:50
    2014年9月29日 6:54
    モデレータ