网页特效 字符串未结束解决
我的解决方法有两个,一个是将字符串变量进行替换操作,将双引号替换成单引号
,单引号替换成“"”,不过这样在传递后读取时还得替换成原文;第二种方法是
不直接将数据以参数形式传递,而是先将其赋值给一个隐藏文本内,函数里只需读
取文本中的内容即可
一就是js文件与页面编码不一致,导致文件内部特殊字符因格式不一致就会在解码
时出现乱码,从而导致编译器在未到达引号( "或' )前提前结束,产生“未结束的
字符串常量”。
解决办法:如果是外部引入js文件 ,可以在<script type text/javascript”
src=”xxx.js” charset=”###′>
中设置charset="###"与你的网页编码一致就可以了;
二 在javascript中,字符串前后标记(如单引号或双引号)不匹配或者嵌套错
误
解决办法: 让前后引号正确配对;共有两层嵌套时,双引号内嵌套单引号是
正确的,单引号内嵌套双引号也是正确的。共有三层嵌套时,最里面一层引号不能
和最外面一层相同,这样是错误的,可以在最里面一层引号前加上转义字符“”。
三 javascript的字符串不能跨行,源码如下 :
document.write('<table width=770 border=0 cellpadding=0 cellspacing=0>
<tr>
<td><img src=../images/f_01.gif border=0 /></td>
<td><img src=../images/f_02.gif border=0 /></td>
</tr>
</table>')
line:2
char:71
code:0
error:未结束的字符串常量
解决方法:
一种方法用n分隔每一行 源码修改为:
document.write('<table width=770 border=0 cellpadding=0n
cellspacing=0>n<tr>n<td><img src=../images/f_01.gif border=0
/></td>n<td><img src=../images/f_02.gif border=0
/></td>n</tr>n</table>');
另一种方法使用多个document.write输出语句,比如源码修改如下:
1.document.writeln('<table width=770 border=0 cellpadding=0
');document.writeln('cellspacing=0> '); 2.document.writeln('<tr> ');
3.document.writeln('<td><img src=../images/f_01.gif border=0 /></td> ');
4.document.writeln('<td><img src=../images/f_02.gif border=0 /></td>
</tr> '); 5.document.writeln('</table>'); 四传递的参数变量内或者脚本变量
中包含html标记语言、包含换行符或包含引号:
这种情况是最难发现的,容易忽略了变量内部文字原因产生的,将字符
串以参数形式传递给一个函数或者href、action时,该字符串里包含换行符、引号
或html标记,造成了此错误。如:a.测试时使用单行数据是正常的,未出现这个错
误;使用多行数据并使用回车键换行,就出现了此错误,因为里面包含换行符。源
码 b.marray[<%=n_id%>]="<%=loopnum%><><%=n_topic%><><%=state%><><%
=n_sendtime%><><%=n_content%>";看似无误,但是<%=n_topic%>、<%=n_content%>
中包含了多个单双引号,就出现了此错误