• 締切済み

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が適応されなくなる感じになるのです。上記プログラムでメッセージを送った後に元画面の画面が影響を受けないようにするにはどうすればよろしいでしょうか? 何かご指摘いただけましたら、何卒よろしくお願い申し上げます。

みんなの回答

  • onos
  • ベストアンサー率81% (127/155)
回答No.2

ASP.NET では JavaScriptを記述してブラウザに渡すための仕組みがちゃんとあります。 registerclientscriptだっけかな? まぁ、こんな仕組み使わなくてもリテラルコントロール使うとかいろいろやり方はありますが。 ただ、この例にあげられたスクリプトを見ると、ブラウザが画面を表示したとたんにalertあげさせたいみたいですが、これ、ブラウザのセキュリティでブロックされませんか? 表示直後にスクリプトを動かすというのはいまどきのブラウザはブロックするはず。 そのあたりも考慮して仕様をみなおしたほうがよいように思います。

kyokotan12
質問者

補足

onosさん いつもお世話になっております。 リテラルコントロールも含め、仕様自体見直してみようと思います。 なかなかWEBの世界の制限は難しいですね!

noname#259269
noname#259269
回答No.1

ASP.NET でサーバコントロールの恩恵を得たい場合は、Response.Write は使わないことです(ファイルダウンロード時など必要な場合もありますが)。 セオリーは下記参照で。 http://www.atmarkit.co.jp/fdotnet/dotnettips/160regscript/regscript.html

kyokotan12
質問者

補足

edp3142 さん お世話になります。 Response.Write が誤動作を起こす原因であり、極力使用すべきではない事はわかりましたが、Response.Write 以外の方法で、MsgBoxのようにメッセージを出す方法はあるのでしょうか?

関連するQ&A

  • ASPクライアント側処理時の変数使用

    ASPアプリケーションにて、登録情報の入力チェックを行うため、下記のようにしたところ、メッセージボックスが出てきません(テキストボックスに入力される初期値はnullになっています)。クライアント側で処理させるため、メッセージボックスを使用しています。内部変数を使用しても上手くできないため、外部変数を使用してみました。 <% Set ObjConn = Server.CreateObject("ADODB.Connection") ObjConn.Open "database","","" Set ObjRS = Server.CreateObject("ADODB.Recordset") ObjRS.Open "master", ObjConn, 3, 3 Session.Contents.Item("test") = ObjRS.Fields("摂取量").Value %> <script language="VBScript"> <!-- msg = Session.Contents.Item("test") MsgBox "Null" & IsNull(msg) MsgBox "Empty" & IsEmpty(msg) MsgBox msg --> </script> <% ObjRS.Close ObjConn.Close %>

  • javascriptのalertについて

    VS2005でWebアプリケーションを開発しています。 ASP.netではMsgBoxが使えないのでjavascriptのalertでメッセージを表示していますが、再表示かける前のメッセージボックスの表示で悩んでいます。 再表示にResponse.Redirectを使用していますが、これをつかうとalertが出ないので代替案を探索中です。 なにかほかに使えそうなのってありますか? よろしくお願いします。m(_ _)m ちなみにASP.netはちょっとしかさわったことのない初心者です

  • ASPが動かない

    いつもお世話になっています。 WINNT4.0SP6a-IIS3.0の環境でASPを使用したいのですが、 スクリプトが全く動作しません。 下記の2パターンを行って見た結果いずれもNGでした。 --1 --------------------------------------------- <SCRIPT LANGUAGE=VBScript RUNAT=Server> For i = 1 to 7 Response.Write "<FONT SIZE=" & i & ">" Response.Write "Hello! World" Response.Write "</FONT><BR>" & chr(13) & chr(10) Next </SCRIPT> --1 の結果---------------------------------------- ▲このページでスクリプトエラーが発生しました。 エラー:オブジェクトがありません。:'Response' ・・・といったダイアログが表示された -------------------------------------------------- --2 ---------------------------------------------- <% For i = 1 to 7 Response.Write "<FONT SIZE=" & i & ">" Response.Write "Hello! World" Response.Write "</FONT><BR>" & chr(13) & chr(10) Next %> --2 の結果---------------------------------------- 全く何も表示されなかった。 -------------------------------------------------- 確認事項 1)インターネットサービスマネージャーの設定では ASPファイルが格納されているディレクトリの"アクセス"の "実行(X)"にはチェックを入れた 2)インストール手順、 ・NTserver4.0インストール ・IIS2.0インストール ・IE4.0にバージョンアップ ・サービスパック6aにバージョンアップによってIISは3.0になった。 上記のような設定を行いました。 この場合何が原因と考えられますでしょうか? 補足が必要でしたら随時更新いたしますので、 どうか、よろしくお願いいたします。

  • [ASP+JavaScript]どこのページから来たの?を知りたい!

    こんばんわ。 JavaScriptとASPを用いてWebシステムを作っています。 確か、JavaScriptかASPでどこのURLから来たかということを転送先のページで認識させることができたと記憶しています。 使用例としては、AのページからBを表示した場合には「いつもありがとう」というようなメッセージを、他のページからダイレクトにBを表示した場合には「ページAの注意を先に読んでください」というようなメッセージを表示するとか・・・。 とにかく、表示先のページでどこのページから転送されてきたのかを認識させたいわけです。。。 どうぞ、ご伝授くださいませ。

  • ASPからファイルダウンロード

    Win2k+IISでASPプログラムを組んでいます。 A.aspのページでボタンを押すとA.aspないのDownLoad関数実行してファイルをダウンロードするプログラムです。 一回目はうまくダウンロードできますが,それが終わった後A.asp内のボタンを押してもダウンロードが出来ません。 これはなぜでしょうか。 (1)怪しいと思うところはA.aspページで全て処理しているからかな~と思います。 A.asp function download() Response.AddHeader "Content- Disposition","attachment;filename=aa.csv" Response.ContentType = "application/octet-stream" Response.Write( "AAAAaaa" & "," ) Response.Write( "BBBaaa" & "," ) Response.End() End function

  • aspの表示

    こんにちは。 aspでこのように作成し、予定では、for文が回るたびに□■がどんどん変わっていくはずだったのですが、 これを実行するとメイン関数が終了したあとにHTMLが表示されてしまいます。 何か方法はないのでしょうか? よろしくお願いします。 <% Option Explicit%> <SCRIPT Language="JavaScript"> var cnt=0 var msg="□□□□□□□□□□"; function aaa() { msg=msg.replace(/□/,"■") document.textForm.box.value=msg; cnt +=1 if (cnt >9 ){ msg="□□□□□□□□□□"; cnt =0 } } </SCRIPT> <HTML> <HEAD> <title>タイトル</title> </HEAD> <BODY> <FORM> <TABLE> <TR > <TD> </TD> </TR> </TABLE> </FORM> </BODY> </HTML> <% Call Main '--------------------------------------------------- ’メイン関数 '--------------------------------------------------- Sub Main() For i=0 to 3 Response.write("<" + "SCRIPT Language=JavaScript" + ">" + " aaa(); <" + "/" + "SCRIPT>") Next End Sub %>

  • ASPでエクセルの印刷定義・・・

    ASPの初心者です。皆さんご教授願います。 上手くお伝えできるかどうかも不安ですが・・・  ASPでエクセルを起動しています。  そのエクセルをA4横とか、ページヘッダとかページを指定したい(ASP上で)のですが、どのような設定、スクリプトになるんでしょうか? ちなみに・・・ Response.Clear() Response.ContentEncoding = System.Text.Encoding.GetEncoding("shift-jis") Response.ContentType = "application/vnd.ms-excel" Response.AppendHeader("Content-Disposition", "inline;filename=out_excel.xls;") Response.Write("<table>") Response.Write("<tr>") : : Response.Write("</tr>") Response.Write("</table>") Response.End() でエクセルを表示しています。 (Win2K,asp.net) 上手くお伝えできなかったら、すみません。 よろしくお願いします。

  • Perl Win32::MsgBoxについての質問

    使用環境 Apache HTTP Server 2.2(win32) OS:Win7 Perl : ActivePerl-5.14.2.1402-MSWin32-x86-295342 msg.plソースコード #!c:/perl/bin/perl.exe use Win32; Win32::MsgBox("Hello world!!", 1); $ret = Win32::MsgBox("保存しますか?", 3 | MB_ICONEXCLAMATION, "確認"); exeit; 上記スクリプトは、確かにコマンドプロンプトからは実行できるのですが、これを以下のようにWEBからアクセスできないのでしょうか? http://****.******.**/cgi-bin/msg.pl 同様に以下のスクリプトも、上記のようにしてアクセスしたいのですが.... use Win32::Sound; Win32::Sound::Volume('100%'); Win32::Sound::Play("C:/Windows/Media/tada.wav"); Win32::Sound::Stop(); 思うに、この二つのモジュールが、コマンドプロンプトからだけでしか実行できないのであれば、この利用価値はどこにあるのでしょうか?(私としてはCGI,SSIとして動かしたいのですが...)よろしくお願いします。

  • aspからasp.netへの遷移(その逆も)

    拡張子がaspの画面から拡張子がaspxの画面へ遷移することは 不可能なのでしょうか?何か特殊な方法があるのでしょうか? ありましたら教えていただけないでしょうか。 aspx画面でボタン押下時に Response.Redirect("./test1.asp")でasp画面へ遷移させると 以下のエラーとなります。 '/WebSite1' アプリケーションでサーバー エラーが発生しました。 この種類のページは処理できません。 説明: 要求されたページの種類は、明示的に禁止されるため処理されません。拡張子 '.asp' が正しくない可能性があります。 下の URL が正しく入力されていることを確認してください。 要求された URL: /WebSite1/test1.asp バージョン情報: Microsoft .NET Framework バージョン:2.0.50727.1433; ASP.NET バージョン:2.0.50727.1433

  • スクロールするテキストボックスの文字色について

    <script language="javascript"> <!-- var speed = 400; var m1 = '<<挿入曲>> '; var m2 = '【トップページ】 : ~ '; var m3 = '【掲示板】 : ~ 「~」 '; var m4 = '【チャット】 : ~ 「~」  '; var m5 = '【写真館】 :  ~ 「~」 '; var m6 = ' '; var m7 = 'もうすぐ新学期♪'; var m8 = ' '; var msg = m1 + m3 + m4 + m5 + m6 + m7 + m8; msg = msg + msg; function formMsg(){ setTimeout("formMsg()",speed); msg = msg.substring(2,msg.length) + msg.substring(0,2); document.fgColor = "green"; document.msgbox.message.value = msg; // document.msgbox.message.fontcolor("#2EE005") // msg.fontcolor("#2EE005"); msg.fontcolor("orange"); } //--> </script> ~ <form name="msgbox"> <input type="text" name="message" size="100" height="10" style="background-color:black"> </form> 上記のようなメッセージボックスをページに貼り付けているのですが、 バックグラウンドを黒、スクロールして流れる、テキストボックスのメッセージの色をオレンジに したいのです。 バックグラウンドの黒はできたのですが、テキストをオレンジにするにはどうすればよいのでしょうか?

専門家に質問してみよう