Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

214 lines (128 sloc) 6.294 kb

Type: URI {#URI}

Provides numerous methods useful for managing URIs.

URI Method: constructor

Pass a string to the URI subclass and it will extend it, returning a new string-like object with new methods useful for managing that URI.

Syntax

new URI([strURI, options]);

Arguments

  1. strURI - (string) the URI to parse into the class.
  2. options - (object) a key/value set of options.

Options

  • base - (mixed) A base href for the URI (defaults to the document base location). Can be a string or an instance of URI. This is used to interpret relative urls (for instance if you were to call new URI('/foo/bar.html') the class will infer that this path is relative to the current document base location).

Example

var myURI = new URI('http://user:password@www.test.com:8383/the/path.html?query=value#anchor');

Returns

  • URI - (string; optional) - an instance of the URI class that has new methods useful for managing the URI. If not declared the window's current base location is used.

URI Method: toString {#URI:toString}

Returns the URI as a string.

Syntax

myURI.toString(); //"http://www.test.com...etc"

Returns

  • (string) the unaltered url.

URI Method: set {#URI:set}

Set's a portion of the URI to the specified value.

Syntax

myURI.set(part, value);

Arguments

  1. type - (string, optional) url with a query string to parse; defaults to window.location

Example

myURI.set('scheme', 'https');
myURI.set('host', 'www.foo.com');
//etc.

Returns

  • (URI) This instance of URI.

Valid parts

  • scheme - (string) 'http', 'https', 'ftp', etc.
  • user - (string) the username portion of the credentials
  • password - (string) the password portion of the credentials
  • host - (string) 'www.example.com', 'example.com', 'subdomain.example.com', etc.
  • port - (string or number) 80, 8080, etc.
  • directory - (string) '/directory/'
  • file - (string) 'file.html'
  • query - (string) 'foo=bar&something=else' (the ? is added for you)
  • fragment - (string) 'anAnchor' (the # is added for you)
  • data - (object) an object of key/value pairs to set the query to ({foo: 'bar', something: 'else'})

URI Method: get {#URI:get}

Returns the current value for the specified portion of the URI.

Syntax

myURI.get(part);

Example

myURI.get('scheme'); //returns "http", for example
myURI.get('host'); //returns "www.example.com", for example

Returns

  • mixed - usually returns a string, but in the case of 'data' returns an object.

Valid parts

  • scheme - (returns string) 'http', 'https', 'ftp', etc.
  • user - (string) the username portion of the credentials
  • password - (string) the password portion of the credentials
  • host - (returns string) 'www.example.com', 'example.com', 'subdomain.example.com', etc.
  • port - (returns string) 80, 8080, etc.
  • directory - (returns string) '/directory/'
  • file - (returns string) 'file.html'
  • query - (returns string) 'foo=bar&something=else' (the ? is added for you)
  • fragment - (returns string) 'anAnchor' (the # is added for you)
  • data - (returns object) an object of key/value pairs to set the query to ({foo: 'bar', something: 'else'})

URI Method: setData {#URI:setData}

Sets the query string from an object (much like myURI.set('data', obj)) but also allows merging.

Syntax

myURI.setData(data[, merge, part]);

Arguments

  1. object - (object) the key/values you want to set for the query string
  2. merge - (boolean, optional) if true the values will be merged with the existing query string. Defaults to false.
  3. part - (string, optional) this defaults to 'query' for setting query string data to the URI, but you could, for example specify 'fragment' to assign query string data to the '#...' portion of the URI (which is useful in ajax applications that wish to store state in the URI without reloading the document).

Alternate Syntax

myURI.setData(key, value);

Alternate Syntax Arguments

  1. key - (string) the key of the data which you wish to assign
  2. value - (string or number) the value you wish to assign

Returns

  • (URI) this instance of URI

Example

myURI.setData(myObject); //same as myURI.set('data', myObject);
myURI.setData(myObject, true); //merges myObject w/ existing query values
myURI.setData('foo', 'bar'); //sets foo=bar in the query string
myURI.setData({foo: 'bar'}, false, 'fragment'); //adds #foo=bar to the url fragment

URI Method: getData {#URI:getData}

Returns the query string values as an object. Same as URI.get('data').

Syntax

myURI.getData([key, part]);

Arguments

  1. key - (string; optional) If specified, returns the value for the given key.
  2. part - (string; optional) If specified, returns the data from the given part (defaults to 'query'). This is useful if you choose to store data in the fragment (the '#...' part of the URI) which is useful in ajax applications that wish to store state in the URI without reloading the document.

Returns

  • mixed - the string value for the given key; if key is not specified, returns an object for all the query string values.

URI Method: clearData {#URI:clearData}

Clears the query string values entirely.

Syntax

myURI.clearData();

URI Method: go {#URI:go}

Loads the url into the document location.

Syntax

myURI.go();

URI Method: toURI {#URI:toURI}

Returns the current instance of URI. Useful when a parameter type is known to be either string or URI.

Example

// Accepts either a string or URI instance
function(uri){
    this.filename = uri.toURI().get('file');
}

Type: String {#String}

Adds a method to instantiate a URI instance from a string.

String Method: toURI {#String:toURI}

Returns a URI instance.

Syntax

"http://www.domain.com/etc".toURI()

Returns

  • an instance of URI
Jump to Line
Something went wrong with that request. Please try again.