差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

java:web:redirectiniframe [2017/08/19 23:33]
java:web:redirectiniframe [2023/06/25 09:48] (目前版本)
行 1: 行 1:
 +{{tag>​java web}}
 +====== 如何在iframe中進行頁面導向?​ ======
 +點擊iframe中的link,僅會讓iframe中的頁面導向。如果透過javascript要讓整個瀏覽器導向,只要用top.location.href即可。那透過java該如何達到呢?​\\
  
 +{{:​java:​web:​redirectpageiniframe.zip|Download Source Code}}\\
 +
 +我寫了一個包含四個頁面的範例:​ index.html、Redirect.jsp、RedirectBtn.html、RedirectTarget.html。index.html內有一個iframe連結至RedirectBtn.html,顯示畫面如下:​\\
 +{{:​java:​web:​redirectiniframe.png?​500|}}\\
 +
 +RedirectBtn.html包含兩個按鈕,**Redirect By Javascript**是透過javascript去Redirect;**Redirect By Jsp**則是透過jsp,點擊後會導向至Redirect.jsp。
 +<code html>
 +<​html>​
 +<​head>​
 +<meta http-equiv="​Content-Type"​ content="​text/​html;​ charset=BIG5">​
 +<​title>​Redirect Btn Page</​title>​
 +<script type="​text/​javascript">​
 + function redirect(){
 + top.location.href = "​RedirectTarget.html";​
 + }
 +</​script>​
 +</​head>​
 +<​body>​
 +<form action="​Redirect.jsp">​
 + <input type="​submit"​ value="​Redirect By Jsp">​
 +</​form>​
 +<input type="​button"​ value="​Redirect By Javascript"​ onclick="​redirect();">​
 +</​body>​
 +</​html>​
 +</​code>​
 +Redirect.jsp中,透過response物件,將javascript內容回應至client端,這與Redirect By Javascript會有相同的效果。
 +<code java>
 + String redirectTarget = "<​script type=\"​text/​javascript\">​\ntop.location.href = \"​RedirectTarget.html\";​\n</​script>";​
 + response.getWriter().print(redirectTarget);​
 + response.flushBuffer();​
 +</​code>​
 +如果是在servlet中,透過HttpServletResponse物件一樣能達到效果。
 +
 +發自內心的獨白:​ 之所以會研究這個,是因為facebook AP在驗證授權的時候,會需要做頁面導向。然而我只是一個小小的canvus。
 +
 +=====    =====
 +----
 +\\
 +~~DISQUS~~