以前沒用到過頁面間傳遞引數再從後台獲取資料,自己總結了一些。
先說需求
:現在有頁面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...