js 不同頁面間傳遞值並取值

2021-08-19 20:11:48 字數 2082 閱讀 8205

以前沒用到過頁面間傳遞引數再從後台獲取資料,自己總結了一些。

先說需求

:現在有頁面pagea.html 和頁面pageb.html,頁面pagea.html中有一事件,當這個事件觸發時會開啟頁面pageb.html。而且頁面pageb.html中的一些內容需要根據pagea.html 中的一些值來判斷顯示哪些內容或者做一些操作。

方法一:

(1) pagea.html 中的事件為 window.open('pageb.html')或者href="pageb.html"。

(2)我們把要傳遞的值加到要開啟頁面的位址後面:window.open('pageb.html?name&code&....')。

其中name、code等就是要傳遞的值。&是為便於取多個值而加的分隔符,用'-'、'|'等符號也行,下面會在用到的時候說明其作用(不加也行)。

(3)使用 window.location.search()方法獲取位址列要傳遞的引數。等到"?name&code"。可以把其賦給乙個變數:var perimeters =  window.location.search;

(4)因為'?'也會被取到所以要用perimeters.substr(1)取到'?'之後的值。

(5)再把取到的值分割成包含乙個乙個值的陣列,用perimeters.substr(1).split('&'),split('&')的作用就是以'&'為標記,把字串分割成字串陣列。這裡面'&'的作用就凸現出來了。

(6)到這裡基本上就能得到想要的值了。不過還會遇到乙個問題,如果值是字母、數字顯示是正常的,可如果傳遞的值是漢字就會出現亂碼。這裡就要用到decodeuri()方法來轉換一下,就像:

decodeuri(perimeters.substr(1).split('&')[0]);就ok了

。window

.open

('pageb.html?name&code&....'

) 在pageb.html

中 var perimeters

= window

.location

.search

;perimeters

= decodeuri

(perimeters

.substr

(1).split

('&')[

0]);

方法二:

方法一的缺點是當有乙個以上的值需要傳遞的時候,需要準確記錄每個值的位置。而本方法是以名稱值對的方式傳遞,比較友好。

從位址列獲取引數,name(型別string)為要獲取的引數名

function geturlparam

(name

) 例:pageb

.html

? name

= xiaocao

& code

=xiaocao0001

console

.log

(geturlparam

('name'

))// 輸出 'xiaocao'

console

.log

(geturlparam

('code'

))// 輸出 'xiaocao0001'

方法三:localstorage或者sessionstorage本地快取

位址列傳參容易被修改,也不安全,可以用localstorage或者sessionstorage

例:設定:localstorage

.setitem

('obj'

, json

.stringify

());

取出:var obj

= json

.parse

(localstorage

.getitem

('obj'

));// obj =

本地訪問的方法要記得用過之後清除快取(

localstorage.removeitem('obj'); 

),避免不必要的錯誤。

sessionstorage類似,區別在於儲存在 sessionstorage 裡面的資料在頁面會話結束時會被清除

以上三種方法各有優缺點,可根據具體情況選用

js 不同頁面間傳遞值並取值

以前沒用到過頁面間傳遞引數再從後台獲取資料,然後搜尋了一下。發現了乙個比較好的方法 1.先說需求 現在有頁面pagea.html 和頁面pageb.html,頁面pagea.html中有一事件,當這個事件觸發時會開啟頁面pageb.html。而且頁面pageb.html中的一些內容需要根據pagea...

不同頁面之間傳遞值

注 此系列記錄在我實際開發中遇到的問題和收藏一些技巧文章。本篇技巧和訣竅記錄的是 不同頁面之間傳遞值,非常簡單的技巧,我相信大家都知道。這個場景太常見了,當然有許多許多的方法,我來介紹一種非常簡單的方法吧!a頁面 b頁面。需要在b頁面獲取a頁面的資訊。a頁面 form id form1 runat ...

MFC tab控制項不同頁面間的變數傳遞和函式呼叫

1 vc之tab 控制項例項 2 vc 中的tab control簡單例子 3 mfc tab控制項的兩個子對話方塊之間的引數傳遞及呼叫 問題描述 mfc程式中tab控價下有三個子頁面page1 page2 page3,page2上有text控制項idc edit1和成員函式fun1,現在page3...