有如下代码:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head><body>
<div id="right"> <div id="right_01" class="rightStyle">
<div class="rightFlash" >
            111111111111
            </div>
        </div>
        <div id="right_02" class="rightStyle">
<div class="rightFlash" >
            2222222222
            </div>
        </div>
        <div id="right_03" class="rightStyle">
<div class="rightFlash" >
            333333333333
            </div>
        </div>
</div>
</body>
</html>内容为一个大的DIV包括三个小的DIV,显示正常。
但是如果作如下改动:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head><body>
<div id="right"> <div id="right_01" class="rightStyle">
<div class="rightFlash" >
            111111111111
            </div>
<script type="text/javascript">
document.write("<script src=\"ei.js\" type=\"text/javascript\">&lt;/script>");
</script>
        </div>
        <div id="right_02" class="rightStyle">
<div class="rightFlash" >
            2222222222
            </div>
        </div>
        <div id="right_03" class="rightStyle">
<div class="rightFlash" >
            333333333333
            </div>
        </div>
</div>
</body>
</html>奇怪的事情发生了,后面两个DIV消失了。。
哪位大侠给解释一下这是怎么回事啊???
着急!着急!着急!
谢谢!!!

解决方案 »

  1.   

    document.write("<script src=\"ei.js\" type=\"text/javascript\"></s"+ "cript>");
      

  2.   

    document.write("<script src=\"ei.js\" type=\"text/javascript\"></scr"+ "ipt>");
    因为每当浏览器遇到</script>,都假定其中的代码快是完整的(即使它出现在javascript字符串中)。。如果如楼主那样写的话,浏览器会显示网页如下:
    <script type="text/javascript">
    document.write("<script src=\"ei.js\" type=\"text/javascript\">"
    </script>
    </script>因此,必须把</script>闭合标签分开写
      

  3.   

    大不同。。
    按你的写法,浏览器输出后,代码成了下面这样:
    <script type="text/javascript" src="ei.js" type="text/javascript">
    &lt;script>
    </div>
    <div id="right_02" class="rightStyle">
    <div class="rightFlash" >2222222222
    </div>
    </div><div id="right_03" class="rightStyle">
    <div class="rightFlash" >
    333333333333
    </div>
    </div></div></body></html>看到木有,<script>标签没有关闭,无法正确创建文档树了。
      

  4.   


    但是在Firefox中script标签貌似被正确创建了,只是后面的DIV不见了
      

  5.   

    我觉得楼上的回答不太正确,&lt;本身就是‘<’的HTML实体,因此,这样写和直接写'<'并无区别,因此,主要还是document.write中的</script>标签要分开写,理由我已经在上面陈述过,如果不分开写,浏览器就会认为其中的代码快是完整的。。运行后,就变成了
    <script type="text/javascript">
    document.write("<script src=\"ei.js\" type=\"text/javascript\">"
    </script>
    </script>
    可以看到,document.write后面的闭括号遗失,另外,有两个</script>标签。。
    这就是一次要把</script>分开写的原因
      

  6.   

    但是从火狐里面看,里面并没有出现2个</script>啊?
      

  7.   

    又看了一遍,发现楼主的问题了。。
    &lt;放在了“”,如果将&lt;放在了“”中,会被当成是字符串,而不会被解析为html实体
    document.write("<script src=\"ei.js\" type=\"text/javascript\">"+&lt;+"/script>");