2011年3月24日

[JavaScript]window.location.href和window.location.replace的區別

有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頁面的話,區別就出來了。

例子:1.html (放form,給user填資料,送出到2.jsp) ; 2.jsp (get user填的資料並處理完後,網頁轉向3.jsp) ; 3.jsp (剛剛2.jsp轉向的動作不同影響按"上一頁"的不一樣)

若是2.jsp 用window.location.replace("3.jsp") 那麼在3.jsp上按上一頁會變成1.jsp

若是2.jsp 用window.location.href("3.jsp") 那麼在3.jsp上按上一頁會變成2.jsp (沒錯~它又會再處理一次並且轉向3.jsp)


上一頁亦可用window.history.go(-1) ; window.history.back();