/jQuery Mobile


jQuery.mobile.path.parseUrl( Url )Returns: Object

Description: Utility method for parsing a URL and its relative variants into an object that makes accessing the components of the URL easy.

Utility method for parsing a URL and its relative variants into an object that makes accessing the components of the URL easy. When parsing relative variants, the resulting object will contain empty string values for missing components (like protocol, host, etc). Also, when parsing URLs that have no authority, such as tel: urls, the pathname property of the object will contain the data after the protocol/scheme colon.

This function returns an object that contains the various components of the URL as strings. The properties on the object mimic the browser's location object:

The fragment component of the URL, including the leading '#' character.
The host and port number of the URL.
The name of the host within the URL.
The original URL that was parsed.
The path of the file or directory referenced by the URL.
The port specified within the URL. Most URLs rely on the default port for the protocol used, so this may be an empty string most of the time.
The protocol for the URL including the trailing ':' character.
The query component of the URL including the leading '?' character.

But it also contains additional properties that provide access to additional components as well as some common forms of the URL developers access:

The username, password, and host components of the URL
The directory component of the pathname, minus any filename.
The protocol and authority components of the URL.
The filename within the pathname component, minus the directory.
The original URL minus the fragment (hash) components.
The original URL minus the query (search) and fragment (hash) components.
The password contained within the authority component.
The username contained within the authority component.


Various uses of jQuery.mobile.path.parseUrl

<!doctype html>
<html lang="en">
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>jQuery.mobile.path.parseUrl demo</title>
  <link rel="stylesheet" href="//code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css">
  <script src="//code.jquery.com/jquery-1.10.2.min.js"></script>
  <script src="//code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
    border: 1px solid;
    border-color: #108040;
    padding: 10px;
  <div role="main" class="ui-content">
    <p>The URL used is http://jblas:[email protected]:8080/mail/inbox?msg=1234&type=unread#msg-content</p>
    <input type="button" value="obj.href" id="button1" class="myButton" data-inline="true">
    <input type="button" value="obj.hrefNoHash" id="button2" class="myButton" data-inline="true">
    <input type="button" value="obj.hrefNoSearch" id="button3" class="myButton" data-inline="true">
    <input type="button" value="obj.domain" id="button4" class="myButton" data-inline="true">
    <input type="button" value="obj.protocol" id="button5" class="myButton" data-inline="true">
    <input type="button" value="obj.authority" id="button6" class="myButton" data-inline="true">
    <input type="button" value="obj.username" id="button7" class="myButton" data-inline="true">
    <input type="button" value="obj.password" id="button8" class="myButton" data-inline="true">
    <input type="button" value="obj.host" id="button9" class="myButton" data-inline="true">
    <input type="button" value="obj.hostname" id="button10" class="myButton" data-inline="true">
    <input type="button" value="obj.port" id="button11" class="myButton" data-inline="true">
    <input type="button" value="obj.pathname" id="button12" class="myButton" data-inline="true">
    <input type="button" value="obj.directory" id="button13" class="myButton" data-inline="true">
    <input type="button" value="obj.filename" id="button14" class="myButton" data-inline="true">
    <input type="button" value="obj.search" id="button15" class="myButton" data-inline="true">
    <input type="button" value="obj.hash" id="button16" class="myButton" data-inline="true">
    <div id="myResult">The result will be displayed here</div>
$(document).ready(function() {
   $( ".myButton" ).on( "click", function() {
    	// Parsing the Url below results an object that is returned with the
    // following properties:
    //  obj.href:         http://jblas:[email protected]:8080/mail/inbox?msg=1234&amp;type=unread#msg-content
    //  obj.hrefNoHash:   http://jblas:[email protected]:8080/mail/inbox?msg=1234&amp;type=unread
    //  obj.hrefNoSearch: http://jblas:[email protected]:8080/mail/inbox
    //  obj.domain:       http://jblas:[email protected]:8080
    //  obj.protocol:     http:
    //  obj.authority:    jblas:[email protected]:8080
    //  obj.username:     jblas
    //  obj.password:     password
    //  obj.host:         mycompany.com:8080
    //  obj.hostname:     mycompany.com
    //  obj.port:         8080
    //  obj.pathname:     /mail/inbox
    //  obj.directory:    /mail/
    //  obj.filename:     inbox
    //  obj.search:       ?msg=1234&amp;type=unread
    //  obj.hash:         #msg-content</strong>
    var obj = $.mobile.path.parseUrl("http://jblas:[email protected]:8080/mail/inbox?msg=1234&type=unread#msg-content");
    var myChoice = eval( this.value );
    $( "#myResult" ).html( myChoice );


© The jQuery Foundation and other contributors
Licensed under the MIT License.