JAVASCRIPT中长字符串做参数问题

今天在做JAVASCRIPT的时候,发现老是出现”未结束的字符串常量”.
自己找了下应该是传参数的时候,有特殊字符引起的.网上也找了下,也有好多出现这种情况.做下总结,以方便以后查阅.
1.JAVASCRIPT引用时,使用的字符语言不一致.
比如:<script type=”text/javascript” src=”xxx.js” charset=”UTF-8″>.xxx.js文件内部使用的是GB2312的格式,外面调用使用的是UTF-8,所以文件内部部分特殊字符因为格式不一致,出现乱码,造成此原因.
2.JAVASCRIPT输出HTML字符时,前后标记不匹配.
这种比较常见,往往在输出字符串时,出现单引号(’)或双引号(”)不配对,或者是在document.write()的时候,没有正确输出单引号(’)或双引号(”)
3.参数内出现HTML标记语言或包含换行符
我今天所遇到的是这种情况.因为我所得到的数据以参数形式传给一函数,结果该数据里包含换行符,造成了此错误.
如:一般测试时只使用单行的数据,是正常的,未出现这个错误,.
当测试时使用多行数据,并使用回车链换行,就出行了此错误.因为里面包含了换行符
对于第3种情况,我的解决方法是:不直接将该数据以参数形式传递,而是先将其赋值在一个隐藏的文本内,需要调用的函数里只需读取该文本里的内容即可.

======================================

 后台代码:

代码
DataTable dtContent = PubSqlHelperFunc.ExecuteDataSet(CommandType.Text, "select * from OfficeGWZZ where ClassRelation='" + dr["f_ClassRelation"].ToString()+"'").Tables[0];
if (dtContent.Rows.Count>0)
{
for (int i = 0; i < dtContent.Rows.Count; i++)
{
TreeNode tnContent
= new TreeNode(" " + dtContent.Rows[i]["Title"].ToString() + " <a href='view.aspx' style='cursor:hand' class='bluelk'>[查看]</a> <a href='edit.aspx' style='cursor:hand' class='bluelk'>[编辑]</a> <a href='javascript:void(0)' onclick='Del(\"" +PubEncryptionFunc.VariableEncryption(dtContent.Rows[i]["id"].ToString()) + "\")' class='bluelk'>[删除]</a>", dtContent.Rows[i]["ClassRelation"].ToString(), "../images/table.jpg");
tnContent.SelectAction
= TreeNodeSelectAction.None;
tnClass.ChildNodes.Add(tnContent);
}
}

 

  前台代码: 

<script language="javascript" type="text/javascript">
function Del(id)
{
alert(id);
}
</script>

 

不加后台红色的双引号时,报错:

posted @ 2010-02-22 11:03  TiTi  阅读(1850)  评论(0编辑  收藏  举报