当前位置:编程学习 > JAVA >>

非ajax提交页面不跳转,java调用javascript详解

 

java 调用javascript的函数,

 

想必很多人都知道,java调用c++,c++调用java,同样也有java调用javascript,或者是javascript调用java(dwr)

其实java调用javascript很简单,最重要的是你要懂得其中的原理才好,浏览器和服务端的交互无非就是,response和request之间的这两个各对象传值操作,

browse  --(request)-->  服务器端   向服务器发送请求,

服务器  --(response)-->  browse    服务器将处理完成的数据交给浏览器来显示,

 

1.页面不刷新,不跳转

一个A.jsp页面请求服务端的servlet,发送post请求,当处理完成请求以后一般页面会跳转向另外一个B.jsp页面;但是当我们在A.jsp中添加一个隐藏的iframe的时候,并且将from表单的target属性修改为:iframe 的id的时候,我们的页面就不会再跳转了,其实不是不跳转,是转向了那个隐藏的iframe,此时用户就不会感到页面有刷新的操作,用户的体验就会提高;

 

A.jsp:

<html>

<head>

<script>

 

</script>

</head>

<body>

<from action = "sava.jsp/save.action" target="hidden_frame">

 

 

</from>

<iframe name='hidden_frame' id="hidden_frame" style="display:none"></iframe>

</body>

</html>

 

2.页面提交成功以后在本页面提示成功信息,

在服务器端,处理完成请求以后,获取response,用response将要调用的javascript的方法,输出到前台页面,前台页面就可以自动调用javascript的方法,

如果有中文,防止中文乱码:

response.setContentType("text/html;charset=UTF-8");

 

前台显示提示:

response.getWriter().print("<script>alert('操作成功!');</script>");

调用前台的方法:

response.getWriter().print("<script>test();</script>"); 注:test方法必须在提交的页面中

如果提交的页面是iframe进来的,则将javascript放到父页面去,然后通过:

response.getWriter().print("<script>parent.window.test();</script>");注:test方法在此iframe的父页面,并非本页;

 

摘自:古影轩

补充:web前端 , JavaScript ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,