- - PR -
Response.Writeについて
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2002-07-16 10:06
こんにちわ。
ASP.NETにて動的なJAVASCRIPTを生成したいと考えています。 そこでサンプルとしてメッセージ表示するJAVASCRIPTを動的にResponse.Writeする 下記のコードを作成しましたが、実行結果としてJAVASCRIPTコードが先頭に出力され てしまうため、うまくいきません。 どなたか良い方法又は私のコードの問題点ありましたらお願いします。 --------------------------------------------------------------------------- xxxx.aspx --------------------------------------------------------------------------- <%@ Page Language="vb" AutoEventWireup="false" Codebehind="WebForm1.aspx.vb" Inherits="javasc.WebForm1"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <title>WebForm1</title> <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.0"> <meta name="CODE_LANGUAGE" content="Visual Basic 7.0"> <meta name="vs_defaultClientScript" content="JavaScript"> <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> </HEAD> <body MS_POSITIONING="GridLayout" onload="NewPopUp()"> <form id="Form1" method="post" runat="server"> </form> test </body> </HTML> --------------------------------------------------------------------------- xxxx.aspx.vb --------------------------------------------------------------------------- Public Class WebForm1 Inherits System.Web.UI.Page #Region " Web フォーム デザイナで生成されたコード " 'この呼び出しは Web フォーム デザイナで必要です。 <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent() End Sub Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init ' CODEGEN: このメソッド呼び出しは Web フォーム デザイナで必要です。 ' コード エディタを使って変更しないでください。 InitializeComponent() End Sub #End Region Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' ページを初期化する ユーザー コードをここに挿入します。 Response.Write("<SCRIPT language=""JavaScript"">") Response.Write("<!--") Response.Write("function NewPopUp() { alert(""test""); }") Response.Write("// -->") Response.Write("</SCRIPT>") End Sub End Class --------------------------------------------------------------------------- 実行後に出力されるHTMLソース --------------------------------------------------------------------------- <SCRIPT language="JavaScript"><!--function NewPopUp() { alert("test"); }// --></SCRIPT> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <title>WebForm1</title> <meta name="GENERATOR" content="Microsoft Visual Studio .NET 7.0"> <meta name="CODE_LANGUAGE" content="Visual Basic 7.0"> <meta name="vs_defaultClientScript" content="JavaScript"> <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5"> </HEAD> <body MS_POSITIONING="GridLayout" onload="NewPopUp()"> <form name="Form1" method="post" action="WebForm1.aspx" id="Form1"> <input type="hidden" name="__VIEWSTATE" value="dDwtMTI3OTMzNDM4NDs7Pnj7e8c4Q64yUZKWRE2yhq5PjGls" /> </form> test </body> </HTML> --------------------------------------------------------------------------- 以上、わかりにくいスレッドですがよろしくお願いします。 | ||||
|
投稿日時: 2002-07-16 10:16
自己レスです。
よくよく考えましたら・・・エラーの原因は SCRIPT language="JavaScript"><!--function NewPopUp() { alert("test"); }// --></SCRIPT> というコードがつながってるために・・・エラーになってました(*_*) 以上、問題解決しました。失礼しました。 | ||||
|
投稿日時: 2002-07-16 10:40
JavaScriptをResponse.Write()メソッドで生成する方法もありますが
ASP.NETには、Pageクラスに RegisterClientScriptBlock()メソッドと RegisterStartupScript()メソッドが用意されています。
Happy Programming Akio Kasai | ||||
|
投稿日時: 2002-07-16 10:53
Dr ADO.NETさんレスありがとうございました。
ためしに使ってみますと、うまくいきました。 こちらのほうがメリットがありそうなので、もうすこし調べて 使っていきたいと思います。 以上、またスレしたときはよろしくお願いします。 |
1