javascript中的location.href有很多種用法,主要如下。
self.location.href="/url" 目前頁面開啟URL頁
location.href="/url" 目前頁面開啟網址
windows.location.href="/url" 目前頁面開啟URL頁面,前面三個用法相同。
this.location.href="/url" 目前頁面開啟URL頁面
parent.location.href="/url" 在父親頁面開啟新頁面
top.location.href="/url" 在頂層頁面開啟新頁面
如果頁面中自訂了frame,那麼可將parent self top換為自訂frame的名稱,效果是在frame視窗開啟url位址
此外,window.location.href=window.location.href;和window.location.Reload()和都是刷新目前頁面。差別在於是否有提交資料。當有提交資料時,window.location.Reload()會提示是否提交,window.location.href=window.location.href;則是向指定的url提交資料
在寫ASP.Net程式的時候,我們常常遇到跳轉頁面的問題,我們常使用Response.Redirect 做ASP.NET框架頁跳轉,如果客戶要在跳轉的時候使用提示,這個就不靈光了,如:
這時候我們的提示內容沒有出來就跳轉了,和Response.Redirect("main.html");沒有任何差別。
這時我們採用下面程式碼試驗一下:
ASP.NET框架頁跳轉的另一實現
這個即實現了我們的要求,在提示後,跳轉頁面。
最重要的是window.location.href 語句可以實作一個框架的頁面在執行伺服器端程式碼後刷新另一個框架的頁面(Response.Redirect無法達到,至少我沒有發現):
如:index.htm頁面中有二個框架,分別為 frameLeft和frameRight,在frameRight頁面中執行伺服器端程式碼後刷新frameLeft中的頁面。
先前最常見的是註冊之後,自動刷新登陸框,讓登陸框換成已登陸頁面,只要在註冊成功的程式碼之後加上一段,即可以實現刷新另個框架的頁面。程式碼如下:
這樣就搞定了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的話,