jQuery URL Parser 도움말
6771 단어 jquery
A jQuery plugin to parse urls and provide easy access to their attributes (such as the protocol, host, port etc), path segments, querystring parameters, fragment parameters and more.
The core parser functionality is based on the Regex URI parser by Steven Levithan .
Please note that version 2 is not backwards compatible with version 1.x of this plugin. v1.1 is still available for download should you need it for some reason.
This plugin requires jQuery to work. Tested on 1.4 and above but will probably work on older versions, too.
License: http://unlicense.org/ - i.e. do what you want with it :-)
Specifying the URL to parse
There are a few different ways to choose what URL to parse:
var url = $.url(); // parse the current page URL
var url = $.url('http://allmarkedup.com'); // pass in a URI as a string and parse that
var url = $('#myElement').url(); // extract the URL from the selected element and parse that - will work on any element with a `src`, `href` or `action` attribute.
URL attributes
The
.attr()
method is used to return information on various parts of the URL. For example: var url = $.url('http://allmarkedup.com/folder/dir/index.html?item=value');
url.attr('protocol'); // returns 'http'
url.attr('path'); // returns '/folder/dir/index.html'
The attributes available for querying are:
There are also a few more obscure ones available too if you want to dig about a bit ;-)
If you don't specify an attribute then this method will return an object literal with all the available attribute key:value pairs in it.
Query string parameters
The
.param()
method is used to return the values of querystring parameters. Pass in a string to access that parameter's value:
$.url('http://allmarkedup.com?sky=blue&grass=green').param('sky'); // returns 'blue'
If no argument is passed in it will return an object literal containing a key:value map of all the querystring parameters.
$.url('http://allmarkedup.com?sky=blue&grass=green').param(); // returns { 'sky':'blue', 'grass':'green' }
Note that the
.param()
method will work on both ampersand-split and semicolon-split querystrings. URL segments
The
.segment()
method is used to return values of individual segments from the URL's path. Pass in an integer value to get the value of that segment - note however that the count is not zero-indexed like an array - i.e.
.segment(1)
returns the firstsegment, not the second one. You can also pass in negative values, in which case it will count back from the end of the path rather than forwards from the start.
var url = $.url('http://allmarkedup.com/folder/dir/example/index.html');
url.segment(1); // returns 'folder'
url.segment(-2); // returns 'example'
If no argument is passed in it will return an array of all the segments (which will be zero-indexed!).
$.url('http://allmarkedup.com/folder/dir/example/index.html').segment(); // returns ['folder','dir','example','index.html']
Fragment parameters and/or segments
Some sites and apps also use the hash fragment to store querystring-style key value pairs (eg.
http://test.com/#sky=blue&grass=green
), or slash-delimited paths (eg. http://test.com/#/about/us/
). There are two methods available for extracting information from fragments of these types -
.fparam()
and .fsegment()
, both of which behave indentically to their .param()
and .segment()
counterparts but act on the fragment rather than the main URL. $.url('http://test.com/#sky=blue&grass=green').fparam('grass'); // returns 'green'
$.url('http://test.com/#/about/us/').fsegment(1); // returns 'about'
Enabling strict mode
Internally this plugin uses Steven Levithan's excellent Regex URI parser, which has two modes - loose and strict. This plugin uses the loose mode by default (i.e. strict mode set to
false
), which deviates slightly from the specs but produces more intuitive results. If for some reason you prefer to use the strict parser and so be fully spec-compatible, then you can enable this when calling the plugin as follows: var url = $.url(true); // parse the current page URL in strict mode
var url = $.url('http://allmarkedup.com',true); // pass in a URI as a string and parse that in strict mode
var url = $('#myElement').url(true); // extract the URL from the selected element and parse that in strict mode
A note on improperly encoded URLs
If you attempt to use this plugin to parse a URL that has an invalid character encoding in it, it will throw a
URIError
Exception. This will happen if the URL has a percentage sign followed by either a non-numeric character or a numeric value of greater than 80 (i.e. 128 in decimal). If there is a chance you may end up parsing a badly encoded URL you should probably wrap your calls to this plugin in a try/catch block to prevent this causing unforseen problems.
Thanks to steve78b for pointing this out.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
jQuery 전후 예이 기사에서는 jquery after() 및 before() 메소드의 예를 볼 것입니다. before() 메서드는 선택한 요소 앞에 지정된 콘텐츠를 삽입합니다. after() 메서드는 선택한 요소 뒤에 지정된 콘텐츠...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.