天天看點

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

原部落客位址:http://blog.csdn.net/web_xyk/article/details/47857033

以前沒用到過頁面間傳遞參數再從背景擷取資料,然後搜尋了一下。

發現了一個比較好的方法:

1.先說需求:現在有頁面pageA.html 和頁面pageB.html,頁面pageA.html中有一事件,當這個事件觸發時會打開頁面pageB.html。而且頁面pageB.html中的一些内容需要根據pageA.html 中的一些值來判斷顯示哪些内容。

2.解決方法:

舉例:(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了。

本文轉自 沉迷學習中 51CTO部落格,原文連結:http://blog.51cto.com/12907581/1968428,如需轉載請自行聯系原作者

繼續閱讀