Javascript重新整理頁面的幾種方法 :
1. history.go(0)
2. location.reload()
3. location=location
4. location.assign(location)
5. document.execCommand( 'Refresh ')
6. window.navigate(location)
7. location.replace(location)
8.document.URL=location.href ------------------------------------------------------------------------------------------------------
區別window.location.Reload()和window.location.href=window.location.href;
<a onclick="javascript:window.location.href=window.location.href;">
<a onclick="javascript:window.location.reload();">
測試效果一樣。表單沒有提交。
<input type="submit" onclick="javascript:window.location.reload();" value="單擊" id="btnVCode" />
<input type="submit" onclick="javascript:window.location.href=window.location.href;" value="單擊" id="btnVCode" />
都提交資料
window.location.Reload()應該是重新整理.(如果有資料提交的話,會提示是否提交的(是和否選項))
window.location.href=window.location.href; 是定向url提交資料
最好不要用location.reload(),而用location=location比較好,還有在強制回應視窗(showModalDialog和showModelessDialog)前者不能用。
reload參數有true和false,比較有意思?
-----------------------------------------------------------------------------
2個方法都是重新整理父視窗,但是其中還是有奧妙的哦。
window.opener.location.reload();這個方法在強迫父視窗的時候,在有些IE瀏覽器(比如安全設定高)的情況下,會彈出一個確認對話方塊,提示是不是要重新再重新整理一次頁面,這可是比較鬱悶的事情哦,我後來把這個方法替換成了window.opener.location.href=window.opener.location.href;
就不會出現那樣的問題了。 --------------------------------------------------------------------------- 在<body onunload="window.opener.location.reload();"> ,這樣在子視窗銷毀的時候自動重新整理主視窗 --------------------------------------------------------------------------“前進” 與“後退” function back()
{
window.history.back()
}
function forward()
{
window.history.forward()
}
function back2()
{
window.history.go(-2)
}
function forward2()
{
window.history.go(2)
}
-----------------------------------------------------------
js重新整理視窗:window.location.replace(window.location.href) window.location.reload(); window.history.go(0); window.location.assign(window.location.href) window.location.href和window.location.replace的區別: 1.html -> 2.html -> 3.html 系統從1.html到2.html後,2中有兩個按鈕,btn1是window.location.href=3.html, btn2是window.location.replace(3.html), 當點擊btn1後在3中用window.history.go(-1);window.history.back();返回的是1.html, 而點擊btn2進入3時,用window.history.go(-1);wondow.history.back();返回的是2.html -------------------------------------------------------- window.location.href和window.location.replace的親身體驗與區別
當用window.location.href是使用window.history.go(-1)或window.history.back()是管用的 當用window.location.replace('url')是使用window.history.go(-1)或window.history.back()是不管用的 window.location.replace("3.jsp");是不向伺服器發送請求的跳轉 window.history.go(-1);window.history.back();方法是根據伺服器記錄的請求決定該跳到哪個頁面的 window.location.href("3.jsp");是向伺服器發送請求的跳轉,window.history.go(-1);wondow.history.back();方法是根據伺服器記錄的請求決定該跳到哪個頁面的 有3個jsp頁面(1.jsp, 2.jsp, 3.jsp),進系統預設的是1.jsp ,當我進入2.jsp的時候, 2.jsp裡面用window.location.replace("3.jsp");與用window.location.href("3.jsp");從使用者介面來看是沒有什麼區別的,但是當3.jsp頁面有一個“返回”按鈕,調用window.history.go(-1);wondow.history.back();方法的時候,一點這個返回按鈕就要返回2.jsp頁面的話,區別就出來了,當用window.location.replace("3.jsp");連到3.jsp頁面的話,3.jsp頁面中的調用window.history.go(-1);wondow.history.back();方法是不好用的,會返回到1.jsp 。當用window.location.href("3.jsp");連到3.jsp頁面的話,3.jsp頁面中的調用window.history.go(-1);wondow.history.back();方法是好用的,會返回2.jsp。因為window.location.replace("3.jsp");是不向伺服器發送請求的跳轉,而window.history.go(-1);wondow.history.back();方法是根據伺服器記錄的請求決定該跳到哪個頁面的,所以會跳到系統預設頁面1.jsp 。window.location.href("3.jsp");是向伺服器發送請求的跳轉,window.history.go(-1);wondow.history.back();方法是根據伺服器記錄的請求決定該跳到哪個頁面的,所以就可以返回到2.jsp。 -------------------------------------------------------- <input type=button value=重新整理 onclick="window.location.reload()"> <input type=button value=前進 onclick="window.history.go(1)"> <input type=button value=後退 onclick="window.history.go(-1)"> <input type=button value=前進 onclick="window.history.forward()"> <input type=button value=後退 onclick="window.history.back()"> 後退+重新整理<input type=button value=後退 onclick="window.history.go(-1);window.location.reload()"> 在C# Web程式中,如為頁面按鈕寫返回上一頁代碼this.RegisterClientScriptBlock("E", "<script language=javascript>history.go(-2);</script>"); 其中,history.go(-2),要寫為-2,因在按鈕事件觸發前,已重新整理一次頁面,所以應是-2。 Response.Write("<script language=javascript>history.go(-2);</script>"); 此處也要寫為“-2”。跟直接寫指令碼的有所不同。 history.back()是會上一頁 i=1 history.go(i)去指定的某夜 如果是history.go(0)那就是重新整理 這兩個屬於JS代碼,相當於IE的前進、後退功能。 具體的用處就要看什麼時候需要這個就用上。比如使用者註冊時的驗證是後台驗證,不符合要求的時候就可以用這個,可以最大限度保證使用者少重複輸入資料。 例如:載入頁面: function onLoadPage(){ if(event.srcElement.tagName=="SPAN"){ oFrame=top.window.middle.frames[2]; oTxt=event.srcElement.innerText; switch(oTxt){ case "前 進": oFrame.history.go(1); case "後 退": oFrame.history.back(); case "刷 新": oFrame.location.reload(); } } } |
|