javascript中的location.href有不少種用法,主要以下。javascript
self.location.href="/url" 當前頁面打開URL頁面
location.href="/url" 當前頁面打開URL頁面
windows.location.href="/url" 當前頁面打開URL頁面,前面三個用法相同。
this.location.href="/url" 當前頁面打開URL頁面
parent.location.href="/url" 在父頁面打開新頁面
top.location.href="/url" 在頂層頁面打開新頁面php
若是頁面中自定義了frame,那麼可將parent self top換爲自定義frame的名稱,效果是在frame窗口打開url地址html
此外,window.location.href=window.location.href;和 window.location.Reload()和都是刷新當前頁面。區別在因而否有提交數據。當有提交數據 時,window.location.Reload()會提示是否提 交,window.location.href=window.location.href;則是向指定的url提交數據
java
在寫ASP.Net程序的時候,咱們常常遇到跳轉頁面的問題,咱們常常使用Response.Redirect 作ASP.NET框架頁跳轉,若是客戶要在跳轉的時候使用提示,這個就不靈光了,如:windows
Response.Write("< script>alert('恭喜您,註冊成功!');< /script>");
Response.Redirect("main.html");
這時候咱們的提示內容沒有出來就跳轉了,和Response.Redirect("main.html");沒有任何區別。服務器
這時咱們採用下面代碼試驗一下:框架
ASP.NET框架頁跳轉的另外一實現jsp
Response.Write("< script language=javascript>alert('恭喜您,註冊成功!')< /script>");
Response.Write("< script language=javascript>window.location.href='main.html'< /script>");
這個即實現了咱們的要求,在提示後,跳轉頁面。this
最重要的是window.location.href 語句能夠實現一個框架的頁面在執行服務器端代碼後刷新另外一個框架的頁面(Response.Redirect沒法達到,至少我沒有發現):url
如:index.htm頁面中有二個框架,分別爲 frameLeft和frameRight,在frameRight頁面中執行服務器端代碼後刷新frameLeft中的頁面。
先前最多見的是註冊以後,自動刷新登錄框,讓登錄框換成已登錄頁面,只要在註冊成功的代碼以後加上一段,便可以實現刷新另個框架的頁面。代碼以下:
Response.Write("< script language=javascript>alert('恭喜您,註冊成功!')< /script>");
Response.Write("< script language=javascript>window.parent.frameLeft.location.href='main.html'< /script>");
這樣就搞定了ASP.NET框架頁跳轉中斷的問題。其實asp、php中通常都使用這種方式。
"window.location.href"、"location.href"是本頁面跳轉
"parent.location.href"是上一層頁面跳轉
"top.location.href"是最外層的頁面跳轉
舉例說明:
若是A,B,C,D都是jsp,D是C的iframe,C是B的iframe,B是A的iframe,若是D中js這樣寫
"window.location.href"、"location.href":D頁面跳轉
"parent.location.href":C頁面跳轉
"top.location.href":A頁面跳轉
若是D頁面中有form的話,
<form>: form提交後D頁面跳轉
<form target="_blank">: form提交後彈出新頁面
<form target="_parent">: form提交後C頁面跳轉
<form target="_top"> : form提交後A頁面跳轉
關於頁面刷新,D 頁面中這樣寫:
"parent.location.reload();": C頁面刷新 (固然,也可使用子窗口的 opener 對象來得到父窗口的對象:window.opener.document.location.reload(); )
"top.location.reload();": A頁面刷新