jQuery获取URL信息有很多方法,但是使用这个插件就非常爽了。

  托管地址在:http://github.com/allmarkedup/jQuery-URL-Parser

            //  http: //localhost:19090/home/index?id=1
var source = $.url.attr("source"); // http://localhost:19090/home/index?id=1
var protocol = $.url.attr("protocol"); // http 全部可选值http, https, file, etc
var path = $.url.attr("path"); // /home/index
var host = $.url.attr("host"); // localhost
var port = $.url.attr("port"); // 19090
var relative = $.url.attr("relative"); // /home/index?id=1
var directory = $.url.attr("directory");// /home/index // http://localhost:19090/floder/index.html?id=1
var file = $.url.attr("file"); // index.html
var query = $.url.attr("query"); // id = 1 这个还可以调用 .param() var id = $.url.param("id"); // 1;
var segment = $.url.segment(1); // 0:floder 1:index.html //也可以指定其他URL
var setUrlAnchor = $.url.setUrl("http://www.baidu.com/#logo").attr("anchor"); // 此时setUrlAnchor与上面示例的 $.url同样调用处理喊出

  jQuery.URL.Parse源代码如下:

// JQuery URL Parser
// Written by Mark Perkins, mark@allmarkedup.com
// License: http://unlicense.org/ (i.e. do what you want with it!) jQuery.url = function() {
var segments = {}; var parsed = {}; /**
* Options object. Only the URI and strictMode values can be changed via the setters below.
*/
var options = { url: window.location, // default URI is the page in which the script is running strictMode: false, // 'loose' parsing by default key: ["source", "protocol", "authority", "userInfo", "user", "password", "host", "port", "relative", "path", "directory", "file", "query", "anchor"], // keys available to query q: {
name: "queryKey",
parser: /(?:^|&)([^&=]*)=?([^&]*)/g
}, parser: {
strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, //less intuitive, more accurate to the specs
loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ // more intuitive, fails on relative paths and deviates from specs
} }; /**
* Deals with the parsing of the URI according to the regex above.
* Written by Steven Levithan - see credits at top.
*/
var parseUri = function() {
str = decodeURI(options.url); var m = options.parser[options.strictMode ? "strict" : "loose"].exec(str);
var uri = {};
var i = 14; while (i--) {
uri[options.key[i]] = m[i] || "";
} uri[options.q.name] = {};
uri[options.key[12]].replace(options.q.parser, function($0, $1, $2) {
if ($1) {
uri[options.q.name][$1] = $2;
}
}); return uri;
}; /**
* Returns the value of the passed in key from the parsed URI.
*
* @param string key The key whose value is required
*/
var key = function(key) {
if (jQuery.isEmptyObject(parsed)) {
setUp(); // if the URI has not been parsed yet then do this first...
}
if (key == "base") {
if (parsed.port !== null && parsed.port !== "") {
return parsed.protocol + "://" + parsed.host + ":" + parsed.port + "/";
}
else {
return parsed.protocol + "://" + parsed.host + "/";
}
} return (parsed[key] === "") ? null : parsed[key];
}; /**
* Returns the value of the required query string parameter.
*
* @param string item The parameter whose value is required
*/
var param = function(item) {
if (jQuery.isEmptyObject(parsed)) {
setUp(); // if the URI has not been parsed yet then do this first...
}
return (parsed.queryKey[item] === null) ? null : parsed.queryKey[item];
}; /**
* 'Constructor' (not really!) function.
* Called whenever the URI changes to kick off re-parsing of the URI and splitting it up into segments.
*/
var setUp = function() {
parsed = parseUri(); getSegments();
}; /**
* Splits up the body of the URI into segments (i.e. sections delimited by '/')
*/
var getSegments = function() {
var p = parsed.path;
segments = []; // clear out segments array
segments = parsed.path.length == 1 ? {} : (p.charAt(p.length - 1) == "/" ? p.substring(1, p.length - 1) : path = p.substring(1)).split("/");
}; return { /**
* Sets the parsing mode - either strict or loose. Set to loose by default.
*
* @param string mode The mode to set the parser to. Anything apart from a value of 'strict' will set it to loose!
*/
setMode: function(mode) {
options.strictMode = mode == "strict" ? true : false;
return this;
}, /**
* Sets URI to parse if you don't want to to parse the current page's URI.
* Calling the function with no value for newUri resets it to the current page's URI.
*
* @param string newUri The URI to parse.
*/
setUrl: function(newUri) {
options.url = newUri === undefined ? window.location : newUri;
setUp();
return this;
}, /**
* Returns the value of the specified URI segment. Segments are numbered from 1 to the number of segments.
* For example the URI http://test.com/about/company/ segment(1) would return 'about'.
*
* If no integer is passed into the function it returns the number of segments in the URI.
*
* @param int pos The position of the segment to return. Can be empty.
*/
segment: function(pos) {
if (jQuery.isEmptyObject(parsed)) {
setUp(); // if the URI has not been parsed yet then do this first...
}
if (pos === undefined) {
return segments.length;
}
return (segments[pos] === "" || segments[pos] === undefined) ? null : segments[pos];
}, attr: key, // provides public access to private 'key' function - see above param: param // provides public access to private 'param' function - see above }; } ();

jQuery 获取 URL信息的更多相关文章

  1. 使用jquery获取url以及jquery获取url参数的方法

    使用jquery获取url以及使用jquery获取url参数是我们经常要用到的操作 1.jquery获取url很简单,代码如下 1.window.location.href; 其实只是用到了javas ...

  2. 一个用php实现的获取URL信息的类

    获取URL信息的类 使用这个类,你能获得URL的如下信息: - Host  - Path  - Statuscode (eg. 404,200, ...)  - HTTP Version  - Ser ...

  3. jquery获取url参数

    js/jquery 获取url参数 2010年04月27日 星期二 13:45 js代码: function GetQueryString(name) { var reg = new RegExp(& ...

  4. 使用jquery获取url及url参数的方法及定义JQuery扩展方法

    1.jquery获取url很简单,代码如下: window.location.href; 其实只是用到了javascript的基础的window对象,并没有用jquery的知识. 2.jquery获取 ...

  5. Jquery 获取URL参数

    使用jquery获取url以及使用jquery获取url参数是我们经常要用到的操作 1.jquery获取url很简单,代码如下 1.window.location.href; 其实只是用到了javas ...

  6. [开发笔记]-使用jquery获取url及url参数的方法

    使用jquery获取url以及使用jquery获取url参数是我们经常要用到的操作 1.jquery获取url很简单,代码如下: window.location.href; 其实只是用到了javasc ...

  7. 使用jquery获取url及url参数的方法

    使用jquery获取url以及使用jquery获取url参数是我们经常要用到的操作 1.jquery获取url很简单,代码如下: window.location.href; 其实只是用到了javasc ...

  8. jquery 获取URL参数并转码的例子

    通过jquery 获取URL参数并进行转码,个人觉得不错,因为有时不转码就会有乱码的问题.jquery 获取URL参数并转码,首先构造一个含有目标参数的正则表达式对象,匹配目标参数并返回参数值代码: ...

  9. 使用jquery获取url上的参数(笔记)

    使用jquery获取url上的参数(笔记) 一.做作业时经常要获取url上的参数 1.当url上有多个参数时 从互联网找到了一个方法 (function ($) { $.getUrlParam = f ...

随机推荐

  1. poj2484--A Funny♂Game

    题意:n个硬币围成环,每次可以取相邻两个硬币或者一个,不能取者负. Ans:n<=2的时候先手必胜,其他任意情况后手必胜,因为不论我先手取什么,我后手总有中心对称与它配对. #include&l ...

  2. 【给你几个使用Xamarin的理由】

    写在开篇前 这种代理操作,绑定影射的机制,有些极端的开发者确实难以接受.追求完美,总感觉原生的各种优点. 如果你非得较这个真,那您还是感觉补习下 Java Eclipse  ,买一台Mac 恶补Obj ...

  3. java设计模式--结构型模式--外观模式

    外观模式 概述 为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用. 适用性 1.当你要为一个复杂子系统提供一个简单接口时.子系统往往因为不 ...

  4. CF 545E Paths and Trees

    题目大意:给出n个点,m条无向边,每条边有长度.求一棵树,要求树上的每个点到源点距离最小的前提下,使得树上的边的长度和最小.输出树上边的总长度,以及树上的边的序号(按输入顺序 1...m). 思路 : ...

  5. QQ聊天界面的布局和设计(IOS篇)-第一季

    我写的源文件整个工程会再第二季中发上来~,存在百度网盘, 感兴趣的童鞋, 可以关注我的博客更新,到时自己去下载~.喵~~~ QQChat Layout - 第一季 一.准备工作 1.将假数据messa ...

  6. C 本地文件夸网文件Cp操作

    1,linux平台C简单实现本地文件cp 码子及运行效果测试

  7. Handsontable对单元格的操作

    1.自动填充单元格数据 fillHandle:true/false    //当值为true时,允许拖动单元格右下角,将其值自动填充到选中的单元格 2.合并单元格 mergeCells:[{row:起 ...

  8. Android学习总结——去除标题栏

    1.继承app.Activity的Activity去除标题栏 @Override protected void onCreate(Bundle savedInstanceState) { super. ...

  9. java获取指定长度随机数(版本1)

    获取指定长度随机数,含大小写字母和数字 package org.sw; import java.util.Random; /** * 得到指定位数的随机数 * @author mengzw * @si ...

  10. Linux系统守护进程详解ntsysv 可以关掉那些服务

    acpid, haldaemon, messagebus, klogd,network, syslogd  以上几个服务必须开启!其他的分析如下: 1.NetworkManager,NetworkMa ...