如何清理异常字符串以便通过Javascript Alert显示
本文关键字:Javascript Alert 显示 何清理 异常 字符串 | 更新日期: 2023-09-27 18:27:34
我正试图以一种由来已久的方式显示一个异常字符串:-
Page page = HttpContext.Current.CurrentHandler as Page;
if (page != null && !page.ClientScript.IsClientScriptBlockRegistered("alert"))
{
page.ClientScript.RegisterClientScriptBlock(
typeof(Alert),
"alert",
"<script type='"text/javascript'">alert('"Fred'");</script>");
}
这样做非常好,并按预期显示消息。然而,如果我使用程序的其他部分提供的字符串:-
page.ClientScript.RegisterClientScriptBlock(
typeof(Alert),
"alert",
"<script type='"text/javascript'">alert('"" + error_message + "'");</script>");
没有显示弹出窗口并且出现错误,
Unterminated String Constant
该字符串包含数量少得可怜的控制字符,但据我所见,没有任何"
或'
字符。有没有一个函数可以被调用来清理字符串,以便它可以被Javascript Alert显示?这里的这个人也有类似的问题,但没有得到普遍的解决方案。
在显示消息之前,您需要序列化消息,因为它可能包含破坏JS的字符。您可以使用JavaScriptSerializer类
例如:
var errorMsg = new JavaScriptSerializer().Serialize(error_message);
page.ClientScript.RegisterClientScriptBlock(
typeof(Alert),
"alert",
"<script type='"text/javascript'">alert('"" + errorMsg + "'");</script>");