頁面跳轉後,本頁面的指令碼還會繼續執行嗎?

2021-09-20 06:27:03 字數 1384 閱讀 3033

前端頁面沒有狀態,當從現有頁面跳轉到另乙個頁面時,自然會執行新頁面的指令碼,而跳轉點後面的**往往被有意無意的忽略。這種特點讓開發者形成一種習慣,無論是設計時,還是除錯時,總是慣性的認為,當前頁面的指令碼**執行到跳轉點處就結束了。
反過來,會讓人誤以為:如果本頁面的**還在執行,就意味著沒有頁面跳轉。
但,這是誤解。
在除錯下面這段**時,就犯了相關的錯誤。
$(function()
……

varpage_info

= restoretextinputpageinfofromsession();

console

.

log(

page_info

);    alertobj(

page_info

);   

// 設定頁面資訊

document

.title =

page_info

.page_title;

$('.settingphone-title').html(

page_info

.bar_title);

$('.hinttext').html(

page_info

.text_prompt);

……
}

雖然alertobj(page_info);

被執行,但頁面已經發生了跳轉。剛開始沒有意識到這一點,一直想不明白alertobj(page_info);語句列印出來的page_info資訊為何不正確,同時,發生了頁面跳轉的現象,而alertobj(page_info);之後,沒有頁面跳轉語句。所以,這個現象一直讓人迷惑不解,後來才明白,是前面的backtologinpage();函式內發生了頁面跳轉(window.location.href=./login.html),並且,跳轉前修改了page_info資訊。

跳轉頁面的方法

1 直接的事件跳轉 window location href 你所要跳轉的頁面 這種的一般都是絕對位址 window.location.href 2 開啟新頁面跳轉 帶參 let routeurl this router resolve 此處也可以路由攜帶傳參 query window open r...

js關閉本頁面,父頁面指定跳轉或重新整理

關閉本頁面,跳轉到京東 response.setcharacterencoding gbk printwriter out response.getwriter out.print self.opener.location.href 關閉本頁面,重新整理父頁面 response.setcharact...

超時後頁面跳轉至登入頁面的解決方法

由於使用window.showmodaldialog和window.showmodelessdialog都不能直接獲取前乙個視窗或對話方塊的window物件,所以對這兩個方法做一下包裝,見下 var ns var sfeatures sfeatures window.showmodaldialog ...