首页 新闻 会员 周边 捐助

请教一个js的输出问题

0
[已关闭问题]
这个是腾讯校友的源码的部分
document.write('<scri' + 'pt type="text/javascript" src="http://imgcache.qq.com/campus/js/Mcommonnew_2.js"></scri' + 'pt>');
}
 
为什么sript要拼接,而不是直接写成一个单词呢?这样做有什么好处?
 
Tear Y的主页 Tear Y | 小虾三级 | 园豆:784
提问于:2010-03-21 00:08
< >
分享
其他回答(1)
0

为了说明这个原因,我写如下段代码你可以在不运行的状况下说下结果,然后我再说明原因:

<script type="text/javascript">
document.write(
"<script type='text/javascript'>alert('hello');</script>");
</script>

这段代码按照我们的想法是要alert出一个hello出来,但结果并非如此。结果是在页面上显示的是  "); 这几个字符!为什么会这样子呢?原因很简单,这就是当浏览器遇到</script>时,它就假定其中的代码块是完整的(即使它出现在JavaScript字符串中)。所以结果就是浏览器认为该段代码有误,首先,alert漏掉了闭合括号,其次有两个</script>标签。那么,我们该如何解决这个问题呢?方法有两种:

解决的办法有二:

  1. 将闭合标签进行转义,采用<\/script>这种写法
  2. 将闭合标签拆分开,例如写成”</scr”+”ipt>”这种写法。

腾讯采用了第二种写法来解决这个问题。

西越泽 | 园豆:10775 (专家六级) | 2010-03-21 01:31
非常感激你,帮我解决了这么多的问题!
支持(0) 反对(0) Tear Y | 园豆:784 (小虾三级) | 2010-03-21 10:37
你9小时前回答我的问题,晚上你不睡觉啊
支持(0) 反对(0) Tear Y | 园豆:784 (小虾三级) | 2010-03-21 10:56
@小皇帝:周末睡得晚些 呵呵
支持(0) 反对(0) 西越泽 | 园豆:10775 (专家六级) | 2010-03-21 10:57
呵呵,我也是,在一点的时候网速有点卡,查看了一下腾讯的校友的源码,看到了以上的问题,真佩服你的知识渊博,向你学习啊!
支持(0) 反对(0) Tear Y | 园豆:784 (小虾三级) | 2010-03-21 11:13
@小皇帝:呵呵 太过奖了!
支持(0) 反对(0) 西越泽 | 园豆:10775 (专家六级) | 2010-03-21 12:09
0

学习了!!!

ForFreeDom | 园豆:589 (小虾三级) | 2010-03-21 09:16
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册