RT
发现可以使用如下语句:
out.println("<script>alert('set_afterlogin()')</script>");请问是否可以将alert函数改成自己写的js函数,在此直接调用?

解决方案 »

  1.   

    out.println(str)方法就是在JSP服务端运行的时候把str输出到服务端返回给客户端的HTML页面可以通过out.print()这种方式输出一段JS代码,这段JS代码先声明一个JS函数,声明结束后再调用一下这个方法.例如:out.println("<script>function showMessage() {alert('set_afterlogin()');}</script>");//声明showMessage方法out.println("<script>showMessage()</script>");//调用showMessage()方法
      

  2.   

    另外你可以在浏览器上查看源代码,看一下JSP返回给客户端的HTML页面,也就jsp的最终运行结果.
      

  3.   

    我试了一下, 发现可以调用alert函数, 但是自己写的js函数不可以使用额?
    比如想使用这个函数:
    function show_login(){
    document.getElementById("login_back").style.display="";
    document.getElementById("login_window").style.display="";

    document.body.style.overflow="hidden";
    }
    在<script></script>中间就实现不了。。
      

  4.   

    自己写的方法一样可以调用,看你的顺序。out.println("<script>alert('set_afterlogin()')</script>");
    这段代码要在你定义的方法show_login()之后才行
      

  5.   

    像这样的调用呢?
    out.println("<script>set_unlogin()</script>"); 函数定义在外部文件。为什么我这边显示不出效果啊
      

  6.   

    可以在js文件里定义函数,然后在<script> </script>中间调用么?
      

  7.   

    可以在JS文件里定义函数,在<script>中调用,其实你写的<script>在客户端是和JS放在一起的,都由JSP引用.
    但有一点要注意,函数声明要在函数调用前,也就是把引用JS部分代码放在你输入<script>之前
      

  8.   

    out.println("<script>function showMessage() {alert('set_afterlogin()');}</script>");//声明showMessage方法out.println("<script>showMessage()</script>");//调用showMessage()方法你用这种方式不可以的吗?先声明你要调用的方法,然后再调用的,如果你想调用js自己定义的方法,就需要将这个out.println放在你声明的function之后的
      

  9.   

    if(session.getAttribute("checkagain")!=null){session.setAttribute("checkagain",null);out.println("<script>show_login()</script>");}这样的形式可以么?
    show_login()在外部js文件里声明了。用作设置某个div显示。
    结果显示不出效果,压力好大。
      

  10.   

    函数定义里面用调用alert函数可以,换上自己写的代码就不行了。代码在其他地方是可以的。 纠结。
      

  11.   

    好!。人!
        
       我想在进入页面之前查看session中的参数,如果不是空值的话, 就调用那个函数,用来控制页面显示的效果。
      
       具体就是设置其中一个div的display 属性为 none ,一个div 的display 属性为“”。就是这样。
      like :
           <%if(session.getAttribute("checkagain")!=null){session.setAttribute("checkagain",null);out.println("<script>city.show_login()</script>");}%>
      

  12.   

    实现了。之前改对了。myeclipse 反映太慢了。。 叨扰了。 。
      

  13.   

    不过有个新问题。。为了是判断 session.getAttribute("checkagain")!=null  不成立, 可以自己修改checkagain =null 吧?
      

  14.   

    在客户端JS里是不能修改jsp session里保存的内容的,需要向服务端发送HTTP请求,在Servlet中修改或者添加属性到session对象里.
      

  15.   

    请问是否可以将alert函数改成自己写的js函数,在此直接调用?
      

  16.   

    是可以,但是你为何不修改下 checkagain 为一个 不存在的 key呢?