- 締切済み
ASP.Net javascriptのMsgBox
大変お世話になります。 日夜ASP.Net にて既存システムを作り直しております。 ASP.Net にて MsgBox を実現させるべく下記のようなプログラムを発見し、使用しています。 Dim strScript As String strScript = "<script language=javascript>" strScript &= "alert('" & msg & "');" strScript &= "</script>" Response.Write(strScript) 上記を使用するとユーザーにメッセージは送れるのですが、このメッセージを閉じて、元のページに戻ると、元のページの表示が崩れる感じになるのです、クラスが適応されなくなるというか、CSSが適応されなくなる感じになるのです。上記プログラムでメッセージを送った後に元画面の画面が影響を受けないようにするにはどうすればよろしいでしょうか? 何かご指摘いただけましたら、何卒よろしくお願い申し上げます。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- onos
- ベストアンサー率81% (127/155)
ASP.NET では JavaScriptを記述してブラウザに渡すための仕組みがちゃんとあります。 registerclientscriptだっけかな? まぁ、こんな仕組み使わなくてもリテラルコントロール使うとかいろいろやり方はありますが。 ただ、この例にあげられたスクリプトを見ると、ブラウザが画面を表示したとたんにalertあげさせたいみたいですが、これ、ブラウザのセキュリティでブロックされませんか? 表示直後にスクリプトを動かすというのはいまどきのブラウザはブロックするはず。 そのあたりも考慮して仕様をみなおしたほうがよいように思います。
ASP.NET でサーバコントロールの恩恵を得たい場合は、Response.Write は使わないことです(ファイルダウンロード時など必要な場合もありますが)。 セオリーは下記参照で。 http://www.atmarkit.co.jp/fdotnet/dotnettips/160regscript/regscript.html
補足
edp3142 さん お世話になります。 Response.Write が誤動作を起こす原因であり、極力使用すべきではない事はわかりましたが、Response.Write 以外の方法で、MsgBoxのようにメッセージを出す方法はあるのでしょうか?
補足
onosさん いつもお世話になっております。 リテラルコントロールも含め、仕様自体見直してみようと思います。 なかなかWEBの世界の制限は難しいですね!