str是不是含有非法字符了?用
var st=escape("<%=str%>");
试试呢

解决方案 »

  1.   

    var st=<%=str%>;
    ->
    var st='<%=str%>';
      

  2.   

    不过.要先把str里的'字符转成\'
      

  3.   

    如果用'<%=str%>',好像用alert(st);打印出来就变成了<%=str%>,取不到原来的值,而escape("<%=str%>");调用以后同样用alert(st);显示出来是乱码,不知道为什么?
      

  4.   

    先把str里的'字符转成\',怎么转呢?
      

  5.   

    你所说的jsp变量是scriptlet变量如<%int i=0;%>呢还是页面变量如<input type="hidden" name="aa" id="aa">呢?
        后者可以用document.getElementById("aa").value或是document.xxform.aa.value(在form中的变量)来得到,前者的话可以在页面中设置一个隐藏变量<input type="hidden" name="bb" id="bb" value=<%=i%>>再通过document.getElementById("bb").value来得到
      

  6.   

    可以这样理解:
    var str=常量
    因为 这个常量是字符 所以应该加上引号。
      

  7.   

    我用的是jsp变量是scriptlet变量,但是用value=<%=i%>好像得不到原来变量i的值,i是String型的,加了引号好像也不行,这是为什么?
      

  8.   

    首先要了解scriptlet是在服务器端运行的,javascript是在客户端运行的,scriptlet中的代码是在整个页面显示之前就完成计算的,而javascript代码是按照顺序由上往下执行的,因此在javascript中不能简单的得到script中的代码.
        可以这样:在页面中紧接着<body>设置一个隐藏变量<input type="hidden" name="bb" id="bb" value=<%=i%> />再在javascript中通过document.getElementById("bb").value来得到,我已经试过了,这样是行的通的.
      

  9.   

    <input type="hidden" name="bb" id="bb" value=<%=i%> />这样在页面上回多出一个/>
    我觉得value的值是不是要处理一下 比如加引号什么的
      

  10.   

    如果用'<%=str%>',好像用alert(st);打印出来就变成了<%=str%>,取不到原来的值,而escape("<%=str%>");调用以后同样用alert(st);显示出来是乱码,不知道为什么?
    ---------------------------------------------------------------escape("<%=str%>");打印出来时乱码是因为escape将str的内容加密了,接收的时候用unescape解码就好了。
      

  11.   

    不过我到现在还不清楚escape使用什么算法进行加码的。我知道DES算法是可逆的,是这个算法还有别的?
      

  12.   

    不可能,我在工程中多次用到此方法,绝无问题,以下是一个实际的例子:
    <%
    long dwId = -1;
    %>
    <input type="hidden" name="dwId" id="dwId" value=<%=dwId%> />
    <script language="javascript">
    alert(document.getElementById("dwId").value);
    </script>
      

  13.   

    那如果我是定义了一个javascript的函数 写在jsp文件中 用的是ibm websphere不知道有没有
    问题
      

  14.   

    没问题,我用的就是wsad5.1.1啊....
      

  15.   

    我在tomcat 下测试,没有问题的。
    <%
    String sName="test";
    %><html>
    <head>
    <title>欢迎使用Web咨询系统</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    </head>
    <body></BODY>
    </HTML>
    <SCRIPT LANGUAGE="JavaScript" defer>
    <!--
     var str="<%=sName%>";
     alert(str);
    //-->
    </SCRIPT>