發生原因:

ASP.NET 預設採用「http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd」定義

該定義要求在「<!DOCTYPE ... >」的前面不可以以任何的輸出

不過當我們在程式碼中使用 Response.Write() 方法來做輸出時,就會發生違反定義的情況

這時候就會發生 CSS 異常的情形。

解決方法:別使用 Response.Write 來輸出 JavaScript alert 語法

 

以下列出幾種替代方案:

方法一(使用 Literal 元件):

在頁面裡面拉一個 Literal 元件,並且在需要印出 JavaScript alert 的時候下

Literal.Text = "<script language=\'javascript\'>alert(\'" + msg + "\')</script>";

其中 msg 是你要顯示的訊息

或是

Literal AlertMsg = new Literal();

AlertMsg.Text = "<script language=\'javascript\'>alert(\'" + msg + "\')</script>";

this.Page.Controls.Add(AlertMsg);

 

方法二(註冊 Client 的 Head Script):

Page.RegisterClientScriptBlock("AlertMsg", "<script language=\'javascript\'>alert(\'" + msg + "\')</script>");

或是

ClientScript.RegisterClientScriptBlock(this.GetType(), "AlertMsg", "<script language=\'javascript\'>alert(\'" + msg + "\')</script>");

AwEi 發表在 痞客邦 PIXNET 留言(0) 人氣()