JS獲取地址欄中的鏈接URL參數

原文鏈接:http://caibaojian.com/177.html

本文將通過實際例子講解怎麼使用javascript或者jquery獲取地址url參數,希望你會喜歡。

問題描述

今天做一個主題,有一個需求是根據不同的頁面來做,雖然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];  // 獲取的是數字部分

獲取查詢值

JavaScript版:

function getUrlParam(name){
    var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
    var r = window.location.search.substr(1).match(reg);
    if (r!=null) return unescape(r[2]); return null;
}
//獲取http://caibaojian.com/?p=177.html的p值
getUrlParam('p'); //輸出177

jQuery版:

<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

 

文章目錄

JavaScript,jQuery 推薦文章

  • 跨瀏覽器使用javascript/jQuery獲取iframe的內容

    iframe是內聯框架,允許你單獨的HTML文件加載到一個現有的文件。您還可以加載文件的動態“src”屬性。假設有一個需要iframe內容和過程使用JavaScript。下面的例子可以幫助你做,這已經是一個跨瀏覽器Firefox和IE瀏覽器 ...

  • 使用js來設置、讀取、刪除cookie的最佳代碼(附換膚應用)

    繼上一篇文章中我們講到cookie的概念,今天我們來寫如何用js來設置cookie、讀取cookie、刪除cookie。本文代碼來自網絡,並附上網頁常見的使用cookie換膚案例供學習。 設置cookie function setCooki ...

  • 免費css3技巧:時間線, Nexus 7, 滑動和菜單.

    1.使用css3和jQuery的作品時間線 非常感謝tutorizlzine,在這篇教程中,我們可以看到一個由jQuery插件展示的作品事件的時間線。你可以添加很多種媒體類型,包括文章、視屏和地圖等 In this great tutori ...

  • 優化jQuery調整屏幕和滾動性能

    在最近的一個jQuery插件中,我使用到了jQuery中的resize()方法來檢測用戶調整瀏覽器窗口並運行相關代碼。 我注意到resize window時各個瀏覽器的性能消耗不一。 IE、Safari、Chrome在調整窗口變化中一直在執 ...

  • CORS跨域POST請求並不兼容IE7及以下

    很多人以爲(包括我之前也是)跨域只需要後端Apach返回的標頭中Header set Access-Control-Allow-Origin: *”,就可以放心的使用,今天再跟大家說一次,這個CORS(跨域資源共享)的方案在POST下並不兼容IE7及以下,IE8-IE9則需要使用window.XDomainRequest.來兼容。

原文:JS獲取地址欄中的鏈接URL參數 ,未經許可,禁止轉載。
來源:前端開發博客 (http://caibaojian.com/177.html)


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章