2012年3月23日 星期五

JQuery querystring 取值

ASP.NET使用querystring如吃飯喝水

後端接值就用 Request.QueryString["id"]

那前端勒?

說穿了就不神秘,自己從location.href字串切割自然可得

但是十大叩頂守則第一條有說

在自己寫之前...

先借助網路力量!!

透過 jQuery 抓取網頁 URL 的參數

效果

程式碼備忘

把jquery.url.js丟上網頁link 使用時用下面這句


$.url.param("id")

jquery.url.js



/*
jQuery Url Plugin
 * Version 1.0
 * 2009-03-22 19:30:05
 * URL: http://ajaxcssblog.com/jquery/url-read-get-variables/
 * Description: jQuery Url Plugin gives the ability to read GET parameters from the actual URL
 * Author: Matthias Jäggli
 * Copyright: Copyright (c) 2009 Matthias Jäggli under dual MIT/GPL license.
*/
(function ($) {
 $.url = {};
 $.extend($.url, {
  _params: {},
  init: function(){
   var paramsRaw = "";
   try{
    paramsRaw = 
     (document.location.href.split("?", 2)[1] || "").split("#")[0].split("&") || [];
    for(var i = 0; i< paramsRaw.length; i++){
     var single = paramsRaw[i].split("=");
     if(single[0])
      this._params[single[0]] = unescape(single[1]);
    }
   }
   catch(e){
    alert(e);
   }
  },
  param: function(name){
   return this._params[name] || "";
  },
  paramAll: function(){
   return this._params;
  }
 });
 $.url.init();
})(jQuery);






N 年後的今天(2015/01/08)發現 中文 TMD 會亂碼耶

把 unescape 改成 decodeURIComponent 即可





另一種選擇:js-url

1 則留言:

  1. search 到這頁,感覺有點過長,用 jquery 應該是要更簡潔而已,如果不能更簡潔,用 stackoverflow 的答案應該更好,供參考

    https://stackoverflow.com/questions/4656843/jquery-get-querystring-from-url

    回覆刪除