我做的一个JSP页面,经测试JAVA部分能正常执行,但其中的JAVASCRIPT脚本无法执行,每次运行到脚本部分就跳过了,请高手指点一下。
 
代码如下:
<%
    if(userid.equals("AA")){ //如果userid等于AA
%><script language='javascript'>");
     if(confirm(“是否要注销”)){  
<%
    System.out.println("执行A操作");
%>
     }else{
<%
        System.out.println("执行B操作");
%>
     }
</script> 这段代码主要是如果ID为AA的话,则弹出一个 confirm对话框,如果点击“确定”则执行一段代码,如果点击“取消”则执行另一段代码 现在的执行结果是“ confirm”对话框根本就没有出现,而jsp把A和B操作都执行了,我只想让执行其中一个操作,我应该怎么做??? 谢谢各位兄弟姐妹了:)

解决方案 »

  1.   

    这个写法是有问题的
    jsp页面的java和jacascript的运行机制是不同的
    java代码的编译是在服务器端,
    jsp代码是在服务器端转换成为servlet代码并得到编译,
    在客户端页面加载的时候其中的java代码就得到了运行,所以你的print语句会被执行;
    但是javascript的代码是首先跟随页面被下载到客户端,当有时间请求的时候才得到执行
    所以,不能用javascript脚本去控制java脚本的。
    如果A B 操作不是java脚本时间
    而是页面事件或者javascript可以完成的事件
    你可以使用showdialog的方式,根据返回值的结果进行程序的控制
      

  2.   

    js是控制,java服务端才是真正的操作代码如下:
    <%
        if(userid.equals("AA")){ //如果userid等于AA
    %><script language='javascript'>;
         if(confirm('是否要注销'))
             document.location.href='A操作的对应的连接';
         else
             document.location.href='B操作的对应的连接';
    </script>
    <%}%>
      

  3.   

    把JS放到<body onload="check()">里去
    function check(){
    var userID="<%=userID%>";
    if(userID=="AA"){
    do A...
    }else{
    do B...
    }
    }
    这里的A和B也只能是JS函数。