关于Javascript字符串BUG

 

我们在head中的<Script></Script>中写如下函数:

 

关于Javascript字符串BUGfunction Test()
关于Javascript字符串BUG
{
关于Javascript字符串BUG
var s="<script>document.write('abcdefg');</script>";
关于Javascript字符串BUG    alert(s);
关于Javascript字符串BUG}

 其他Body中的内容随便,这个时候我们用IE6,7,FireFox等浏览器打开,我们可以看到在第一排出现了内容“"; alert(s); } ”,这是怎么回事?我们再将我们这个函数改写如下:

关于Javascript字符串BUGfunction Test()
关于Javascript字符串BUG
{
关于Javascript字符串BUG
var s="<script>document.write('abcdefg');<"+"/script>";
关于Javascript字符串BUG    alert(s);
关于Javascript字符串BUG}

这个时候我们第一次看到的那个字符串没有了。想必大家都应该明白了,这里很明显我们将""里面的内容是作为字符串的,但是浏览器却没有意识到这点,把我们当字符串用的</script>变成了脚本的结束标志。这点没有什么好办法,解决办法:把字符串写成第二种形式。


本文转自深蓝居博客园博客,原文链接:http://www.cnblogs.com/studyzy/archive/2007/01/11/690320.html,如需转载请自行联系原作者

上一篇:SQL Server数据库损坏、检测以及简单的修复办法


下一篇:SQL Server并行度问题