獲得目前頁面的url
Html 代碼
- window.location.herf
window.location.herf
靜态html檔案js讀取url參數
Html 代碼
- location.search; // 擷取url中"?"符後的字串
location.search; //擷取url中"?"符後的字串
下邊為轉載的相應的技術
在ajax應用流行時,有時我們可能為了降低伺服器的負擔,把動态内容生成靜态html頁面或者是xml檔案,供用戶端通路!但是在我們的網站或 系統中往住頁面中某些部分是在背景沒有進行修改時,其内容不會發生變化的。但是頁面中也往往有部分内容是動态的更新的,比如一個新聞頁面,新聞内容往往生 成了之後就是靜态的,但是新聞的最新評論往往是變化的,在這個時候有幾種解決方案:
1、重新生成該靜态頁面,優點是使用者通路時頁面上的肉容可以實作全靜态,不與伺服器程式及資料庫後端打交道!缺點是每次使用者對頁面任何部分更新都 必須重新生成。
2、js調用請求動态内容,優點是靜态頁面隻生成一次,動态部分才動态加載,卻點是伺服器端要用輸出一段js代碼并用js代碼輸出網頁内容,也不 利于搜尋引擎收錄。
3、ajax調用動态内容,和js基本相似,隻是與伺服器互動的方式不同!并且頁面顯示不會受到因動态調用速度慢而影響整個頁面的加載速度!至于 ajax不利于搜尋收錄,當然在《ajax in acation》等相關書籍中也介紹有變向的解決方案!
4、在伺服器端ssl動态内容,用伺服器端優化及緩存解決是時下最流行的方法!
對于第二種和第三種方法都是我最青睐的靜态解決方法,适合以内容為主的中小型網站。那麼在有時候可能會有js讀取url參數的需求,事實證明的确 也有很多時候有這種需求,特别是在胖用戶端的情況下!以前也寫過這樣的代碼,其實原理很簡單就是利用javascript接口提供location對像得 到url 位址,然後通過分析url以取得參數,以下是我收錄的一些優秀的url參數讀取代碼:
一、字元串分割分析法。
這裡是一個擷取URL+?帶QUESTRING參數的JAVASCRIPT用戶端解決方案,相當于asp的 request.querystring,PHP的$_GET
函數:
Html 代碼
- < script >
- function GetRequest()
- {
- var url = location .search; //擷取url中"?"符後的字串
- var theRequest = new Object();
- if(url.indexOf("?") != -1)
- {
- var str = url .substr(1);
- str strs = str.split("&");
- for(var i = 0 ; i < strs.length ; i ++)
- {
- theRequest[strs[i].split("=")[0]]=unescape(strs[i].split("=")[1]);
- }
- }
- return theRequest;
- }
- </ script >
<script> function GetRequest() { var url = location.search; //擷取url中"?"符後的字串 var theRequest = new Object(); if(url.indexOf("?") != -1) { var str = url.substr(1); strs = str.split("&"); for(var i = 0; i < strs.length; i ++) { theRequest[strs[i].split("=")[0]]=unescape(strs[i].split("=")[1]); } } return theRequest; } </script>
然後我們通過調用此函數擷取對應參數值:
Html 代碼
- < script >
- var Request = new Object();
- Request = GetRequest ();
- var 參 數1,參數2,參數3,參數N;
- 參數1 = Request ['參數1'];
- 參 數2 = Request ['參數2'];
- 參 數3 = Request ['參數3'];
- 參 數N = Request ['參數N'];
- </ script >
<script> var Request=new Object(); Request=GetRequest(); var 參數1,參數2,參數3,參數N; 參數1=Request['參數1']; 參數2=Request['參數2']; 參數3=Request['參數3']; 參數N=Request['參數N']; </script>
以此擷取url串中所帶的同名參數
二、正則分析法。
Html 代碼
- function GetQueryString(name)
- {
- var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
- var r = window .location.search.substr(1).match(reg);
- if (r!=null) return unescape(r[2]); return null;
- }
- alert(GetQueryString(" 參數名1"));
- alert(GetQueryString("參數名2"));
- alert(GetQueryString(" 參數名3"));