给既然是javascript,客户端肯定可以看到了,因为他要运行阿。你可以考虑把这些改写成jsp,然后传给用户,这样就没有问题了。

解决方案 »

  1.   

    你可以使用 unescape和escape
    <script>
    document.write(unescape("%3Ctitle%3E%u32A3%u592A%u5E73%u6D0B%u4E2A%u4EBA%u7F51%u7AD9%u32A3%3C/title%3E%0D%0A%3Cbody%3E%0D%0A%3CSCRIPT%20language%3DjavaScript%3E%0D%0A%3C%21--%0D%0Adocument.oncontextmenu%3Dnew%20Function%28%22event.returnValue%3Dfalse%3B%22%29%3B%0D%0Adocument.onselectstart%3Dnew%20Function%28%22event.returnValue%3Dfalse%3B%22%29%3B%0D%0A//%20--%3E%0D%0A%3C/SCRIPT%3E%0D%0A%3CSCRIPT%20type%3Dtext/javascript%3E%0D%0A%3C%21--%0D%0Avar%20ie5%20%3D%20%28document.all%20%26%26%20document.getElementsByTagName%29%3B%0D%0Avar%20step%20%3D%200%3B%0D%0Afunction%20setSB%28v%2C%20el%2C%20inforEl%2C%20message%29%20%7B%0D%0Aif%20%28ie5%20%7C%7C%20document.readyState%20%3D%3D%20%22complete%22%29%20%7B%0D%0AfilterEl%20%3D%20el.children%5B0%5D%3B%0D%0AvalueEl%20%3D%20el.children%5B1%5D%3B%0D%0A%0D%0Aif%20%28filterEl.style.pixelWidth%20%3E%200%29%20%7B%0D%0Avar%20filterBackup%20%3D%20filterEl.style.filter%3B%0D%0AfilterEl.style.filter%20%3D%20%22%22%3B%0D%0AfilterEl.style.filter%20%3D%20filterBackup%3B%0D%0A%7D%0D%0A%0D%0AfilterEl.style.width%20%3D%20v%20+%20%22%25%22%3B%0D%0AvalueEl.innerText%20%3D%20v%20+%20%22%25%22%3B%0D%0AinforEl.innerText%20%3D%20message%3B%0D%0A%7D%0D%0A%7D%0D%0Afunction%20setSBByStep%28v%2C%20el%2C%20inforEl%2C%20message%29%20%7B%0D%0Aif%20%28ie5%20%7C%7C%20document.readyState%20%3D%3D%20%22complete%22%29%20%7B%0D%0Astep%20%3D%20step%20+%20v%3B%0D%0AfilterEl%20%3D%20el.children%5B0%5D%3B%0D%0AvalueEl%20%3D%20el.children%5B1%5D%3B%0D%0A%0D%0Aif%20%28filterEl.style.pixelWidth%20%3E%200%29%20%7B%0D%0Avar%20filterBackup%20%3D%20filterEl.style.filter%3B%0D%0AfilterEl.style.filter%20%3D%20%22%22%3B%0D%0AfilterEl.style.filter%20%3D%20filterBackup%3B%0D%0A%7D%0D%0A%0D%0AfilterEl.style.width%20%3D%20step%20+%20%22%25%22%3B%0D%0AvalueEl.innerText%20%3D%20step%20+%20%22%25%22%0D%0AinforEl.innerText%20%3D%20message%3B%0D%0A%7D%0D%0A%7D%0D%0A%0D%0Afunction%20fakeProgress%28v%2C%20el%29%20%7B%0D%0Aif%20%28v%20%3E%3D%20101%29%0D%0Alocation.href%3D%22index2.htm%22%3B%0D%0Aelse%20%7B%0D%0AsetSB%28v%2C%20el%2C%20infor%2C%20%22%20%u32A3%u6B22%u8FCE%u5149%u4E34%u592A%u5E73%u6D0B%u4E2A%u4EBA%u7F51%u2026%u2026%u9875%u9762%u6B63%u5728%u52A0%u8F7D%u4E2D%u32A3%22%29%3B%0D%0Awindow.setTimeout%28%22fakeProgress%28%22%20+%20%28v%20+%201%29%20+%20%22%2C%20document.all%5B%27%22%20+%20el.id%20+%20%22%27%5D%29%22%2C%2050%29%3B%0D%0A%7D%0D%0A%7D%0D%0A//--%3E%0D%0A%3C/SCRIPT%3E%0D%0A%3CBODY%20bgColor%3D%2300BFFF%20topMargin%3D100%20onload%3DfakeProgress%280%2Csb%29%3E%0D%0A%3CP%3E%u3000%3C/P%3E%0D%0A%3CP%3E%u3000%3C/P%3E%0D%0A%3CP%3E%u3000%3C/P%3E%3C%21--%20Status%20Bar%20Starts%20--%3E%0D%0A%3CDIV%20align%3Dcenter%3E%0D%0A%3CDIV%20id%3Dsb%20%0D%0Astyle%3D%22BORDER-left%3A%20%23008000%201px%20solid%3BBORDER-RIGHT%3A%20%23008000%201px%20solid%3B%20BORDER-TOP%3A%20%23008000%201px%20solid%3BBORDER-BOTTOM%3A%20%23008000%201px%20solid%3BBACKGROUND%3A%20%23FFD700%3B%20WIDTH%3A%20400px%3B%20HEIGHT%3A%2014px%3B%20TEXT-ALIGN%3A%20left%22%3E%0D%0A%3CDIV%20id%3DsbChild1%20%0D%0Astyle%3D%22FILTER%3A%20Alpha%28Opacity%3D0%2C%20FinishOpacity%3D80%2C%20Style%3D1%2C%20StartX%3D0%2C%20StartY%3D0%2C%20FinishX%3D100%2C%20FinishY%3D0%29%3B%20OVERFLOW%3A%20hidden%3B%20WIDTH%3A%20100%25%3B%20POSITION%3A%20absolute%3B%20HEIGHT%3A%2012px%22%3E%0D%0A%3CDIV%20style%3D%22BACKGROUND%3A%20%23008000%3B%20WIDTH%3A%20100%25%22%20hidden%20overflow%3A%20%0D%0A%3Bheight%3A12px%3B%3E%3C/DIV%3E%3C/DIV%3E%0D%0A%3CDIV%20%0D%0Astyle%3D%22FONT-SIZE%3A%2010px%3B%20WIDTH%3A%20400px%3B%20COLOR%3A%20white%3B%20FONT-FAMILY%3A%20arial%3B%20POSITION%3A%20absolute%3B%20HEIGHT%3A%2014px%3B%20TEXT-ALIGN%3A%20center%22%3E%3C/DIV%3E%3C/DIV%3E%3C%21--%20Status%20Bar%20Ends%20--%3E%0D%0A%3CP%3E%3C/P%3E%0D%0A%3CDIV%20id%3Dinfor%20%0D%0Astyle%3D%22FONT-SIZE%3A%2011px%3B%20WIDTH%3A%20100%25%3B%20COLOR%3A%20%23999999%3B%20FONT-FAMILY%3A%20arial%3B%20POSITION%3A%20relative%3B%20HEIGHT%3A%2014px%3B%20TEXT-ALIGN%3A%20center%22%3E%3C/DIV%3E%3C/DIV%3E%3C/BODY%3E%0D%0A%0D%0A%0D%0A%3Cstyle%3E%20BODY%20%7BSCROLLBAR-FACE-COLOR%3A%20%2399CCFF%3B%20SCROLLBAR-HIGHLIGHT-COLOR%3A%20%23CCFFFF%3B%20SCROLLBAR-SHADOW-COLOR%3A%20%23000000%3B%20SCROLLBAR-3DLIGHT-COLOR%3A%20%23FFFFFF%3B%20SCROLLBAR-ARROW-COLOR%3A%20%20%23FFFF00%3B%20SCROLLBAR-TRACK-COLOR%3A%20%2399CCFF%3B%20SCROLLBAR-DARKSHADOW-COLOR%3A%20%2300CCFF%3B%20%7D%20%3C/style%3E%0D%0A%3C/HTML%3E"));
    </script>
      

  2.   

    把所有javascript写在一个文件里吧!
    <SCRIPT LANGUAGE="JavaScript" src="../script/script.js"></SCRIPT>
      

  3.   

    用jsp文件替代javascript不好
    javascript的好处是在客户端运行,从而可以减少服务器的负担,用CGI程序可能会让使用javascript可以很容易实现的东西非常繁琐
      

  4.   

    在网页中使用<script src="http://yourhost/scripts/libjsfile">
    libjsfile是由服务器端程序临时生成的。java servlet,jsp,asp等等都可以。
    以JAVA 为例,
    在返回libjsfile这前,判断一下
    request.getHeader("referer")是不是与你网站上的引用这个JS的页面一致,如果不一致,说明用户是从另一个页面引用这个JS,禁止其访问。
    注意:要禁用CACHE。不然,===============================
         ServletOutputStream sos = response.getOutputStream();
         response.setContentType("text/plain;charset=GB2312");
         response.setHeader("Cache-control","no-cache");
         response.setDateHeader("max-age",0);
        
         try{
         String ref = request.getHeader("referer");
         if(!(ref.trim().equals("http://134.127.20.154:8000/test/index.htm"))){
         sos.println("document.write(\""+ref+":Denied.\")");
         }
         else{
              Enumeration headers = request.getHeaderNames();
             String headername;
             while(headers.hasMoreElements()){
             headername = (String)headers.nextElement();
             sos.println("document.write(\""+headername+" : "+request.getHeader(headername)+"\");\r\n");
             }
             }
      

  5.   

    我想:
    一、调用JS文件
    二、用JSP页面,JAVA语言里输出JAVASCRIPT语法:
    out.println("<script language=\"javascript\">");
    out.println("alert('test !');");
    out.println("</script>");