/ Published in: JavaScript
This is a script that can parse a URL string, and return all components in a systematic way via an object.
This script is very useful in places where you want to link to a page "dynamically" generated by javascript. This is usually done by adding GET-like params after a # in the URL.
This parser can parse URLs like:
* http://jrharshath.com/
* http://jrharshath.com/page?param=value
* http://jrharshath.com/page?param=value¶m2=value2
* http://jrharshath.com/some?serverparam=somevalue#JSFeature?param=val¶m2=val2
* http://jrharshath.com/some?serverparam=somevalue#AjaxPage?param=val¶m2=val2#AnotherAjaxFeature?featureparam=featureval
This script is very useful in places where you want to link to a page "dynamically" generated by javascript. This is usually done by adding GET-like params after a # in the URL.
This parser can parse URLs like:
* http://jrharshath.com/
* http://jrharshath.com/page?param=value
* http://jrharshath.com/page?param=value¶m2=value2
* http://jrharshath.com/some?serverparam=somevalue#JSFeature?param=val¶m2=val2
* http://jrharshath.com/some?serverparam=somevalue#AjaxPage?param=val¶m2=val2#AnotherAjaxFeature?featureparam=featureval
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
/* * Javascript URL Parser * @author jrharshath (http://jrharshath.wordpress.com/) * @description Parses any URL like string and returns an array or URL "Components" * * Working demo located at http://jrharshath.qupis.com/urlparser/ * While using in a webapp, use "urlparse(window.location.href)" to parse the current location of the web page * Free to use, just provide credits. */ function urlparse( str ) { var arr = str.split('#'); var result = new Array(); var ctr=0; for each( part in arr ) { var qindex = part.indexOf('?'); result[ctr] = {}; if( qindex==-1 ) { result[ctr].mid=part; result[ctr].args = []; ctr++; continue; } result[ctr].mid = part.substring(0,qindex); var args = part.substring(qindex+1); args = args.split('&'); var localctr = 0; result[ctr].args = new Array(); for each( val in args ) { var keyval = val.split('='); result[ctr].args[localctr] = new Object(); result[ctr].args[localctr].key = keyval[0]; result[ctr].args[localctr].value = keyval[1]; localctr++; } ctr++; } return result; }
URL: http://jrharshath.wordpress.com/