如何在iframe中進行頁面導向?

點擊iframe中的link,僅會讓iframe中的頁面導向。如果透過javascript要讓整個瀏覽器導向,只要用top.location.href即可。那透過java該如何達到呢?

Download Source Code

我寫了一個包含四個頁面的範例: index.html、Redirect.jsp、RedirectBtn.html、RedirectTarget.html。index.html內有一個iframe連結至RedirectBtn.html,顯示畫面如下:

RedirectBtn.html包含兩個按鈕,Redirect By Javascript是透過javascript去Redirect;Redirect By Jsp則是透過jsp,點擊後會導向至Redirect.jsp。

<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>

Redirect.jsp中,透過response物件,將javascript內容回應至client端,這與Redirect By Javascript會有相同的效果。

	String redirectTarget = "<script type=\"text/javascript\">\ntop.location.href = \"RedirectTarget.html\";\n</script>";
	response.getWriter().print(redirectTarget);
	response.flushBuffer();

如果是在servlet中,透過HttpServletResponse物件一樣能達到效果。

發自內心的獨白: 之所以會研究這個,是因為facebook AP在驗證授權的時候,會需要做頁面導向。然而我只是一個小小的canvus。