1. 程式人生 > 其它 >jQuery獲取位址列中的連結引數

jQuery獲取位址列中的連結引數

問題描述

今天做一個主題,有一個需求是根據不同的頁面來做,雖然php也可以做到,不過考慮到自己的特效程式碼都是在jQuery上完成,想著能否直接通過獲取位址列中的連結引數裡面的數字直接來實現效果。

假設頁面的地址是這樣子的。http://caibaojian.com/p/165,那麼我要獲取最後的一個數字165,可以通過這樣子的程式碼·

var url= window.location.href;
var index = url.substring(url.lastIndexOf('/') + 1);

但是這樣子有缺陷,假如我獲取到的地址不是這樣子的形式,而是http://caibaojian.com/tools

的話,那麼這個index的值就不是一個數字了。

解決方案

下面這種可能會更好呢?

//code from http://caibaojian.com/177.html
var lastBit = url.substring(url.lastIndexOf('/') + 1).match(/[^\/]*$/)[0];
var lastDigits = url.substring(url.lastIndexOf('/') + 1).match(/[0-9]*$/)[0];  // 獲取的是數字部分

獲取查詢值

<script type="text/javascript">
(function($){
$.getUrlParam 
= function(name) { var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); var r = window.location.search.substr(1).match(reg); if (r!=null) return unescape(r[2]); return null; } })(jQuery); $(function(){ alert(window.location.href); alert($.getUrlParam('page')); }) </script>

http://www.caibaojian.com/front?page=5

當一個頁面的地址是上面這個,那麼我們使用了上面的jQuery程式碼,就會彈出一個數字5了。

內容擴充套件

對於像下面這樣的網址

http://www.caibaojian.com:80/fisker/post/0703/window.location.html?ver=1.0&id=6#imhere

我們可以用javascript獲得其中的各個部分
1, window.location.href-----------整個URl字串(在瀏覽器中就是完整的位址列)
本例返回值: http://www.caibaojian.com:80/fisker/post/0703/window.location.html?ver=1.0&id=6#imhere

2,window.location.protocol---------URL 的協議部分
本例返回值:http:

3,window.location.host----------URL 的主機部分
本例返回值:www.caibaojian.com

4,window.location.port-----URL 的埠部分
如果採用預設的80埠(update:即使添加了:80),那麼返回值並不是預設的80而是空字元
本例返回值:""

5,window.location.pathname(URL 的路徑部分(就是檔案地址))
本例返回值:/fisker/post/0703/window.location.html

6,window.location.search-------查詢(引數)部分
除了給動態語言賦值以外,我們同樣可以給靜態頁面,並使用javascript來獲得相信應的引數值
本例返回值:?ver=1.0&id=6

7,window.location.hash-------錨點
本例返回值:#imhere