人丑就該多看書
文章來自其他博文。
*.location.href 用法:
javascript>
function rs(){
parent.left.location.href="top.htm"
parent.bot.location.href="top.htm"
}
以下是一個隨意文件名的htm文件:
你自己試試,我想你要的可能就是這樣的效果!
--------------------------------------------------------------------------------
我引用樓上老兄的方法回復,幫忙解釋一下吧。
以下是top.htm 代碼
function rs(){
parent.left.location.href="top.htm" //partent指的是父頁,也就是最外面的框架頁,left只得是left.htm,location是left頁的一向對象,而href是location對象的一個屬性,就是該屬性確定了left的url地址。所以這里就把你需要的地址給了這個parent.left。
parent.bot.location.href="top.htm" //此句意思同上面的大致一樣。
} //函數結束,實現了同時對兩個url的更新!
以下是一個隨意文件名的htm文件:
> //給這個left.htm定義了一個名字叫left
//給這個top.htm定義了一個名字叫top
//給這個bot.htm定義了一個名字叫bot
window 對象的 location 屬性包含了當前頁面的地址 (URL) 信息,你可以直接改變此屬性值,將其設置成新的地址 (URL):
window.location = "http://www.yahoo.com/";
或者
location = "http://www.yahoo.com/";
你還可以通過下邊的兩種方法中的任何一種來使瀏覽器從服務器上下載 (Load) 頁面:
reload() - 促使瀏覽器重新下載當前的頁面,也就是“刷新”當前頁面了。
replace(URL) - 促使瀏覽器根據 URL 參數中給出的地址 (URL) 下載頁面,同時在當前瀏覽器存儲的歷史記錄 (即所瀏覽過的頁面的列表) 中使用新的地址(即此方法中的 URL 參數) 覆蓋當前的頁面。
使用 replace() 方法意味著用戶將不能通過按 “返回” 按鈕回到前邊瀏覽過的那個頁面,但這并不是說用戶完全不能回到原來的所有頁面,他們只不過是無法回到被 replace() 方法替換的那一個頁面 (注意:只是被替換的那一個頁面)。
framedemo.html,top.html,button.html為例來具體說明如何做
其中framedemo.html由上下兩個頁面組成,代碼如下:
現在假設top.html即上面的頁面有一個button來實現對下面頁面的刷新,可以用以下七種語句,哪個好用自己看著辦了。
語句1. window.parent.frames[1].location.reload();
語句2. window.parent.frames.bottom.location.reload();
語句3. window.parent.frames["bottom"].location.reload();
語句4. window.parent.frames.item(1).location.reload();
語句5. window.parent.frames.item('bottom').location.reload();
語句6. window.parent.bottom.location.reload();
語句7. window.parent['bottom'].location.reload();
解釋一下:
1.window指代的是當前頁面,例如對于此例它指的是top.html頁面。
2.parent指的是當前頁面的父頁面,也就是包含它的框架頁面。例如對于此例它指的是framedemo.html。
3.frames是window對象,是一個數組。代表著該框架內所有子頁面。
4.item是方法。返回數組里面的元素。
看了部分文章個人總結:
top.location是在頂層frame中打開新頁
window.location是在當前frame中打開新頁
parent.location 在當前窗口的父窗口打開Url地址
Javascript中的location.href有很多種用法,主要如下:
self.location.href="/url" 當前頁面打開URL頁面
ocation.href="/url" 當前頁面打開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提交數據。
"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提交后D頁面跳轉
: form提交后彈出新頁面
: form提交后C頁面跳轉
: form提交后A頁面跳轉
關于頁面刷新,D 頁面中這樣寫:
"parent.location.reload();": C頁面刷新 (當然,也可以使用子窗口的 opener 對象來獲得父窗口的對象:window.opener.document.location.reload(); )
"top.location.reload();": A頁面刷新
javascript中的location.href有很多種用法,主要如下。
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" 在頂層頁面打開新頁面
如果頁面中自定義了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.Write("< script>alert('恭喜您,注冊成功!');< /script>");
Response.Redirect("main.html");
這時候我們的提示內容沒有出來就跳轉了,和Response.Redirect("main.html");沒有任何區別。
這時我們采用下面代碼試驗一下:
ASP.NET框架頁跳轉的另一實現
復制代碼代碼如下:
Response.Write("< script language=javascript>alert('恭喜您,注冊成功!')< /script>");
Response.Write("< script language=javascript>window.location.href='main.html'< /script>");
這個即實現了我們的要求,在提示后,跳轉頁面。
最重要的是window.location.href 語句可以實現一個框架的頁面在執行服務器端代碼后刷新另一個框架的頁面(Response.Redirect無法達到,至少我沒有發現):
如: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提交后D頁面跳轉
: form提交后彈出新頁面
: form提交后C頁面跳轉
: form提交后A頁面跳轉
關于頁面刷新,D 頁面中這樣寫:
"parent.location.reload();": C頁面刷新 (當然,也可以使用子窗口的 opener 對象來獲得父窗口的對象:window.opener.document.location.reload(); )
"top.location.reload();": A頁面刷新