且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

关于Javascript字符串BUG

更新时间:2022-08-12 17:34:34

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

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

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

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

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