网页特效时都会用到JS,问一个JS问题
JS文件正常,内容假设为a,这时候,网页能正常显示.
当把JS文件内容写成这样(document.write("<script>a</scritp>");),这时候就不正常了,有经验的知道什么回事吗?

解决方案 »

  1.   

    你是不是想显示<script>a</scritp>给用户看吗?<script>在里面被解释了,你要实现,应该用:
    document.write("&lt;script&gt;a&lt;/script&gt;");
      

  2.   

    document.write("<scr"+"ipt">a</sc"+"ript>")
      

  3.   

     上面2方法都可以 转义或者拆分<script>
      

  4.   

    楼上的我试来都不行,应该不是这个转义的问题.
    我详细说下我要做的步骤:
    一个可以正常显示的JS内容如下:
    var imgs = new Array();      
    var simgs = new Array();      
    var hrefs = new Array();      
    var digest = new Array();     
     
    /* 大图 */
    imgs[imgs.length] ="img/1.jpg";
    imgs[imgs.length] ="img/2.jpg";
    imgs[imgs.length] ="img/3.jpg";
    imgs[imgs.length] ="img/4.jpg";
    //imgs[imgs.length] ="/cms/flash/p-19.gif";
    /* 小图 */
    simgs[simgs.length] ="img/1.jpg";
    simgs[simgs.length] ="img/2.jpg";
    simgs[simgs.length] ="img/3.jpg";
    simgs[simgs.length] ="img/4.jpg";
    //simgs[simgs.length] ="/cms/flash/p-19s.gif"; 
         
    /* 链接 */
    hrefs[hrefs.length] = "http://www.wc3c.com"; 
    hrefs[hrefs.length] = "http://www.0668.com"; 
    hrefs[hrefs.length] = "http://bbs.0668.com"; 
    hrefs[hrefs.length] = "http://www.4sb.cn"; 
       
    /* 标题 */
    digest[digest.length] = "零点智慧";
    digest[digest.length] = "茂名资讯网";
    digest[digest.length] = "0668论坛";
    digest[digest.length] = "4SB";
    var nn=1;      
    function change_img(i){      
        if(arguments[0] != null){      
            nn=i;      
            window.clearInterval(tt);      
        }          
        showJdt(nn++);      
        if(  (nn)>imgs.length ){ nn=1;}      
        tt=setTimeout("change_img()",5000);      
    }      function showJdt(i){      
        onClass(i-1);      
        var bimg = document.getElementById("jdt_img");      
        var jdtlink = document.getElementById("jdt_link");      
        var jdttext = document.getElementById("jdt_text");      
        bimg.setAttribute("src",imgs[i-1]);      
        jdtlink.setAttribute("href",hrefs[i-1]);      
        jdttext.innerHTML = digest[i-1];      
    }      function onClass(n){      
        var obj = document.getElementById("jdt_small_pics");      
        var pics = obj.getElementsByTagName("li");      
        for(var i=0;i<pics.length;i++){      
            pics[i].className = "off";      
        }      
        pics[n].className = "on";      
    }      
    var jdtStyle = "";     
    jdtStyle += "<style type=\"text\/css\"> ";     
    jdtStyle += "#jdt_small_pics {float:left;width:100%;height:70px;padding-left:0;margin-left:0;margin-top:0}";    
    jdtStyle += " *html #jdt_small_pics {height:60px}";    
    jdtStyle += "#jdt_small_pics img{cursor:hand;width:78px;height:50px;float:left;margin:0;padding:0;border:1px solid #fff} ";     
    jdtStyle += "#jdt_small_pics li.on {line-height:0;cursor:hand;margin-right:3px;display:inline;float:left;padding-top:8px;filter:alpha(opacity=100);-moz-opacity:1;opacity:1;background:url(http:\/\/image.yesky.com\/TLimages\/chinabyte\/newscenter\/images\/jdt_arrow.gif) center 2px no-repeat} ";     
    jdtStyle += "#jdt_small_pics li.off {line-height:0;margin-right:3px;float:left;display:inline;padding-top:8px;filter:alpha(opacity=50);-moz-opacity:0.5;opacity:0.5} ";     
    jdtStyle += "#jdt_small_pics .on img {border:1px solid #c00} ";     
    jdtStyle += "#jdt_small_pics .off img {border:1px solid #bbb} ";     
    jdtStyle += "li {list-style:none} ";     
    jdtStyle += "<\/style> ";     
    document.write(jdtStyle);     
    var jdtHtml = "";     
    jdtHtml += "<div id=\"jdt080604\" style=\"float:left;width:100%;height:100%\"> ";     
    jdtHtml += "        <div id=\"jdt_big_pics\" style=\"width:100%;height:200px;position:relative\"><a href=\""+hrefs[0]+"\" id=\"jdt_link\"><img src=\""+imgs[0]+"\" id=\"jdt_img\" width=\"330\" height=\"200\" border=\"0\"\/><\/a> ";     
    jdtHtml += "            <div style=\"filter:alpha(opacity=80);-moz-opacity:0.8;opacity:0.8;position:absolute;left:0;top:179px;width:100%;height:21px;background:#015595;\"><\/div> ";      
    jdtHtml += "            <div style=\"position:absolute;left:0;top:179px;width:100%;height:21px;line-height:21px;color:#fff;font-size:12px;font-weight:bold;text-align:center;text-indent:1em;overflow:hidden;white-space:nowrap;\" id=\"jdt_text\">"+digest[0]+"<\/div> ";    
    jdtHtml += "        <\/div> ";     
    jdtHtml += "        <ul id=\"jdt_small_pics\"> ";     
    for(var i=0;i<imgs.length;i++){     
        if(i != 0 && i != (simgs.length-1) ){     
            jdtHtml += "            <li class=\"off\"><a href=\""+hrefs[i]+"\"><img src=\""+simgs[i]+"\" width=\"75\" height=\"58\" border=\"0\" onmouseover=\"onClass(1);change_img("+(i+1)+")\"\/> <\/a>";     
        }else if(i == 0){     
            jdtHtml += "            <li class=\"on\"><a href=\""+hrefs[i]+"\"><img src=\""+simgs[i]+"\" width=\"75\" height=\"58\" border=\"0\" onmouseover=\"onClass(0);change_img("+(i+1)+")\" \/> <\/a>";     
        }else{     
            jdtHtml += "            <li class=\"off\" style=\"margin-right:0\"><a href=\""+hrefs[i]+"\"><img src=\""+simgs[i]+"\" width=\"75\" height=\"58\" border=\"0\"  onmouseover=\"onClass(3);change_img("+(i+1)+")\"\/> <\/a>";     
        }     
    }    
    jdtHtml += "        <\/ul> ";     
    jdtHtml += "    <\/div> ";     
    document.write(jdtHtml);     
    change_img();function setTab(name,cursel,n,fun){
    for(i=1;i<=n;i++){
    var menu=document.getElementById(name+i);
    var con=document.getElementById("con_"+name+"_"+i);
    menu.className=i==cursel?"hover":"";
    if(con!=null){
    con.style.display=i==cursel?"block":"none";
    }
    }
    if(fun!=''&&fun!=undefined){
    var exfun=eval(fun);
    }
    }现在问题就是把这个JS内容作为一个JS模板,程序就读这个模板,在生成JS文件的时候,程序死定生成JS文件的内容格式为document.write("[!--这里是读模板的数据--]");
    这知道明白我的意思不?
      

  5.   

    LZ的意思是服务端返回的大段html代码(含有js) 到客户端时直接运行 显示出界面效果 是这样吗
      

  6.   

    是的,本来可以显示的JS文件,因为程序的须要,必须写成document.write( "[!--JS文件内容--] ")这样的格式,而且这样一样能正确显示..我先把JS文件的内容中的"变成'号,这个JS也能正确显示,现在我把这个JS文件写成document.write( "[!--JS文件内容--] ");的形式,结果怎么都不能正确显示,按道理,语法都正确的啊