我正在尝试以历史悠久的方式显示异常字符串:-
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 显示?这个家伙 here 也有类似的问题,但没有通用的解决方案。
最佳答案
您需要在显示消息之前对其进行序列化,因为它可能包含破坏 JS 的字符。您可以使用 JavaScriptSerializer类
例如:
var errorMsg = new JavaScriptSerializer().Serialize(error_message);
page.ClientScript.RegisterClientScriptBlock(
typeof(Alert),
"alert",
"<script type=\"text/javascript\">alert(\"" + errorMsg + "\");</script>");
关于c# - 如何清理异常字符串以便可以通过 Javascript Alert 显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18210079/