非ajax提交頁面不跳轉,java調用javascript詳解 – Javascript教程_JS教程_技術文章 – 程式設計聯盟

 

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的父頁面,並非本頁;

 

摘自:古影軒

發佈留言