alert("...");
var values = "value1
valu2part1 value2part2
value3
valu4";
alert(values);
我正在分配:
var values = "<%=Model.Values%>";
这些值存储在数据库中。值通过文本区域输入
在数据库中,每行用
\t\r
分隔。当我使用以下代码将其带入JavaScript变量时:
var values = "<%=Model.Values%>";
我得到一些类似的东西:
var values = "value1
valu2part1 value2part2
value3
valu4";
但这是一个错误。我能做什么?
最佳答案
var values = "<%=Model.Values%>";
这是不安全的。当字符串中有换行符时,它不仅会失败(因为JavaScript字符串文字不能跨越多行),而且值中的
"
也可能过早地结束字符串。如果该值包含用户提交的数据,则为脚本注入安全漏洞(XSS)。要创建JS文字语法,请使用JSON序列化器。例如,使用JavaScriptSerializer:
var values= <%= new JavaScriptSerializer().Serialize(Model.Values) %>;
或例如Json.NET(如果您使用的是较旧的.NET版本)。
关于javascript - JavaScript/<文本区域>,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3856664/