- ベストアンサー
ページにJavaScriptを埋め込むには?
- ASP.NETでWebを作っている場合、ボタン押下時に確認メッセージを表示したい場合、どのようにJavaScriptを埋め込めばよいでしょうか?
- OnClientClickを使用して.aspxのボタンにJavaScriptを埋め込んだが、.csのボタン押下処理よりも早く反応してしまう問題が発生した。
- .csファイルにJavaScriptを埋め込む方法を調査したが、古い形式であるRegisterClientScriptBlockが警告を出している。正しい引数を指定する方法を教えていただきたい。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
お世話になります。 .NET Framework のバージョンは書いてませんが 2.0 ですよね、きっと。 何を使うべきかは警告メッセージの後ろに書いてあります。 [警告メッセージより引用] 'System.Web.UI.Page.RegisterClientScriptBlock(string, string)' は古い形式です: 'The recommended alternative is ClientScript.RegisterClientScriptBlock(Type type, string key, string script). http://go.microsoft.com/fwlink/?linkid=14202' [/警告メッセージより引用] パラメータとして何を渡すべきかは MSDN に書いてあります。 http://msdn2.microsoft.com/ja-jp/library/system.web.ui.clientscriptmanager.registerclientscriptblock(VS.80).aspx [MSDN より引用] パラメータ type 登録するクライアント スクリプトの型。 key 登録するクライアント スクリプトのキー。 script 登録するクライアント スクリプト リテラル。 解説 クライアント スクリプトは、そのキーと型で一意に識別されます。同じキーと型を持つスクリプトは重複していると見なされます。同じ型とキーのペアを持つスクリプトは、同じページに 1 つだけ登録できます。既に登録されているスクリプトを登録しようとしても、重複したスクリプトは作成されません。 [/MSDN より引用] なので、こんな感じになると思います。 RegisterClientScriptBlock("startup", "<script language='JavaScript'> alert('スタートアップ') </script>") ↓ ClientScript.RegisterClientScriptBlock(this.GetType(), "startup", "<script language='JavaScript'> alert('スタートアップ') </script>")