UNPKG

crossbrowdy

Version:

A Multimedia JavaScript framework to create real cross-platform and hybrid game engines, games, emulators, multimedia libraries and apps.

554 lines (442 loc) 33.2 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title>CrossBrowdy API documentation [printable] Source: CrossBase/net/CB_Net.js</title> <!--[if lt IE 9]> <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <link type="text/css" rel="stylesheet" href="styles/sunlight.default.css"> <link type="text/css" rel="stylesheet" href="styles/site.yeti.css"> </head> <body style="min-width:800px; overflow-wrap:break-word; word-wrap:break-word; word-break:break-word; line-break:strict; hyphens:none; -webkit-hyphens:none; -moz-hyphens:none;"> <div class="navbar navbar-default navbar-fixed-top "> <div class="container"> <div class="navbar-header"> <a class="navbar-brand" href="index.html">CrossBrowdy API documentation [printable]</a> <button class="navbar-toggle" type="button" data-toggle="collapse" data-target="#topNavigation"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> </div> <div class="navbar-collapse collapse" id="topNavigation"> <ul class="nav navbar-nav"> <li class="dropdown"> <a href="namespaces.list.html" class="dropdown-toggle" data-toggle="dropdown">Namespaces<b class="caret"></b></a> <ul class="dropdown-menu inline"> <li><a href="CB_Arrays.html">CB_Arrays</a></li><li><a href="CB_AudioDetector.html">CB_AudioDetector</a></li><li><a href="CB_Client.html">CB_Client</a></li><li><a href="CB_Collisions.html">CB_Collisions</a></li><li><a href="CB_Configuration.html">CB_Configuration</a></li><li><a href="CB_Configuration.CrossBase.html">CB_Configuration.CrossBase</a></li><li><a href="CB_Configuration.CrossBrowdy.html">CB_Configuration.CrossBrowdy</a></li><li><a href="CB_Controllers.html">CB_Controllers</a></li><li><a href="CB_Controllers_Proprietary.html">CB_Controllers_Proprietary</a></li><li><a href="CB_Controllers_Proprietary.WII.html">CB_Controllers_Proprietary.WII</a></li><li><a href="CB_Controllers_Proprietary.WII_U.html">CB_Controllers_Proprietary.WII_U</a></li><li><a href="CB_Device.html">CB_Device</a></li><li><a href="CB_Device.AmbientLight.html">CB_Device.AmbientLight</a></li><li><a href="CB_Device.Battery.html">CB_Device.Battery</a></li><li><a href="CB_Device.Location.html">CB_Device.Location</a></li><li><a href="CB_Device.Motion.html">CB_Device.Motion</a></li><li><a href="CB_Device.Orientation.html">CB_Device.Orientation</a></li><li><a href="CB_Device.Proximity.html">CB_Device.Proximity</a></li><li><a href="CB_Device.Vibration.html">CB_Device.Vibration</a></li><li><a href="CB_Elements.html">CB_Elements</a></li><li><a href="CB_Events.html">CB_Events</a></li><li><a href="CB_Keyboard.html">CB_Keyboard</a></li><li><a href="CB_Keyboard.chars.html">CB_Keyboard.chars</a></li><li><a href="CB_Keyboard.extended.html">CB_Keyboard.extended</a></li><li><a href="CB_Keyboard.keys.html">CB_Keyboard.keys</a></li><li><a href="CB_Modules.html">CB_Modules</a></li><li><a href="CB_Mouse.html">CB_Mouse</a></li><li><a href="CB_Mouse.CursorImage.html">CB_Mouse.CursorImage</a></li><li><a href="CB_Net.html">CB_Net</a></li><li><a href="CB_Net.Fetch.html">CB_Net.Fetch</a></li><li><a href="CB_Net.REST.html">CB_Net.REST</a></li><li><a href="CB_Net.Sockets.html">CB_Net.Sockets</a></li><li><a href="CB_Net.Sockets.SockJS.html">CB_Net.Sockets.SockJS</a></li><li><a href="CB_Net.XHR.html">CB_Net.XHR</a></li><li><a href="CB_Pointer.html">CB_Pointer</a></li><li><a href="CB_Screen.html">CB_Screen</a></li><li><a href="CB_Speaker.html">CB_Speaker</a></li><li><a href="CB_Touch.html">CB_Touch</a></li><li><a href="CB_baseSymbols.html">CB_baseSymbols</a></li> </ul> </li> <li class="dropdown"> <a href="classes.list.html" class="dropdown-toggle" data-toggle="dropdown">Classes<b class="caret"></b></a> <ul class="dropdown-menu inline"> <li><a href="CB_AudioFile.html">CB_AudioFile</a></li><li><a href="CB_AudioFileCache.html">CB_AudioFileCache</a></li><li><a href="CB_AudioFileSprites.html">CB_AudioFileSprites</a></li><li><a href="CB_AudioFileSpritesPool.html">CB_AudioFileSpritesPool</a></li><li><a href="CB_AudioFile_API.AAPI.html">CB_AudioFile_API.AAPI</a></li><li><a href="CB_AudioFile_API.ACMP.html">CB_AudioFile_API.ACMP</a></li><li><a href="CB_AudioFile_API.SM2.html">CB_AudioFile_API.SM2</a></li><li><a href="CB_AudioFile_API.WAAPI.html">CB_AudioFile_API.WAAPI</a></li><li><a href="CB_Canvas.html">CB_Canvas</a></li><li><a href="CB_GraphicSprites.html">CB_GraphicSprites</a></li><li><a href="CB_GraphicSpritesScene.html">CB_GraphicSpritesScene</a></li> </ul> </li> <li class="dropdown"> <a href="global.html" class="dropdown-toggle" data-toggle="dropdown">Global<b class="caret"></b></a> <ul class="dropdown-menu inline"> <li><a href="global.html#CB_BASE_NAME">CB_BASE_NAME</a></li><li><a href="global.html#CB_CREDITS_DEFAULT">CB_CREDITS_DEFAULT</a></li><li><a href="global.html#CB_NAME">CB_NAME</a></li><li><a href="global.html#CB_OPTIONS">CB_OPTIONS</a></li><li><a href="global.html#CB_VERSION">CB_VERSION</a></li><li><a href="global.html#CB_addCredits">CB_addCredits</a></li><li><a href="global.html#CB_baseToBase">CB_baseToBase</a></li><li><a href="global.html#CB_baseToInt">CB_baseToInt</a></li><li><a href="global.html#CB_br2nl">CB_br2nl</a></li><li><a href="global.html#CB_brToNl">CB_brToNl</a></li><li><a href="global.html#CB_combineArraysOrObjects">CB_combineArraysOrObjects</a></li><li><a href="global.html#CB_combineAutomatically">CB_combineAutomatically</a></li><li><a href="global.html#CB_combineJSON">CB_combineJSON</a></li><li><a href="global.html#CB_combineURIParameters">CB_combineURIParameters</a></li><li><a href="global.html#CB_combineURLParameters">CB_combineURLParameters</a></li><li><a href="global.html#CB_console">CB_console</a></li><li><a href="global.html#CB_copyObject">CB_copyObject</a></li><li><a href="global.html#CB_countDecimalDigits">CB_countDecimalDigits</a></li><li><a href="global.html#CB_countDecimalPart">CB_countDecimalPart</a></li><li><a href="global.html#CB_countDecimals">CB_countDecimals</a></li><li><a href="global.html#CB_countIntegerDigits">CB_countIntegerDigits</a></li><li><a href="global.html#CB_countIntegerPart">CB_countIntegerPart</a></li><li><a href="global.html#CB_credits">CB_credits</a></li><li><a href="global.html#CB_forEach">CB_forEach</a></li><li><a href="global.html#CB_forceString">CB_forceString</a></li><li><a href="global.html#CB_getBase64StringObject">CB_getBase64StringObject</a></li><li><a href="global.html#CB_getCookie">CB_getCookie</a></li><li><a href="global.html#CB_getDatum">CB_getDatum</a></li><li><a href="global.html#CB_getJSONPropertyValue">CB_getJSONPropertyValue</a></li><li><a href="global.html#CB_getLZStringObject">CB_getLZStringObject</a></li><li><a href="global.html#CB_getValueIndex">CB_getValueIndex</a></li><li><a href="global.html#CB_getValuePath">CB_getValuePath</a></li><li><a href="global.html#CB_includeJSFile">CB_includeJSFile</a></li><li><a href="global.html#CB_indexOf">CB_indexOf</a></li><li><a href="global.html#CB_init">CB_init</a></li><li><a href="global.html#CB_intToBase">CB_intToBase</a></li><li><a href="global.html#CB_isArray">CB_isArray</a></li><li><a href="global.html#CB_isEmail">CB_isEmail</a></li><li><a href="global.html#CB_isFileLocal">CB_isFileLocal</a></li><li><a href="global.html#CB_isString">CB_isString</a></li><li><a href="global.html#CB_lastIndexOf">CB_lastIndexOf</a></li><li><a href="global.html#CB_ltrim">CB_ltrim</a></li><li><a href="global.html#CB_nl2br">CB_nl2br</a></li><li><a href="global.html#CB_nlToBr">CB_nlToBr</a></li><li><a href="global.html#CB_numberFormat">CB_numberFormat</a></li><li><a href="global.html#CB_numberOfDecimalDigits">CB_numberOfDecimalDigits</a></li><li><a href="global.html#CB_numberOfDecimals">CB_numberOfDecimals</a></li><li><a href="global.html#CB_numberOfIntegerDigits">CB_numberOfIntegerDigits</a></li><li><a href="global.html#CB_parseJSON">CB_parseJSON</a></li><li><a href="global.html#CB_parseString">CB_parseString</a></li><li><a href="global.html#CB_regularExpressionString">CB_regularExpressionString</a></li><li><a href="global.html#CB_renderString">CB_renderString</a></li><li><a href="global.html#CB_replaceAll">CB_replaceAll</a></li><li><a href="global.html#CB_rtrim">CB_rtrim</a></li><li><a href="global.html#CB_scriptPath">CB_scriptPath</a></li><li><a href="global.html#CB_scriptPathCalculate">CB_scriptPathCalculate</a></li><li><a href="global.html#CB_setCookie">CB_setCookie</a></li><li><a href="global.html#CB_setDatum">CB_setDatum</a></li><li><a href="global.html#CB_sizeOf">CB_sizeOf</a></li><li><a href="global.html#CB_sizeof">CB_sizeof</a></li><li><a href="global.html#CB_stringifyJSON">CB_stringifyJSON</a></li><li><a href="global.html#CB_symmetricCall">CB_symmetricCall</a></li><li><a href="global.html#CB_symmetricCallClear">CB_symmetricCallClear</a></li><li><a href="global.html#CB_this">CB_this</a></li><li><a href="global.html#CB_trim">CB_trim</a></li> </ul> </li> </ul> <div class="col-sm-3 col-md-3"> <form class="navbar-form" role="search"> <div class="input-group"> <input type="text" class="form-control" placeholder="Search" name="q" id="search-input"> <div class="input-group-btn"> <button class="btn btn-default" id="search-submit"><i class="glyphicon glyphicon-search"></i></button> </div> </div> </form> </div> </div> </div> </div> <div class="container" id="toc-content" style="width:100%;"> <div class="row" style="width:100%;"> <div class="col-md-12"> <div id="main"> <h1 class="page-title">Source: CrossBase/net/CB_Net.js</h1> <section> <article> <pre class="sunlight-highlight-javascript linenums">/** * @file Management for things related with the net. Contains the {@link CB_Net} static class. * @author Joan Alba Maldonado &lt;workindalian@gmail.com> * @license Creative Commons Attribution 4.0 International. See more at {@link https://crossbrowdy.com/about#what_is_the_crossbrowdy_copyright_and_license}. */ /** * Static class to manage things related to the net. It will return itself if it is tried to be instantiated. * @namespace CB_Net */ if (typeof(CB_Net) === "undefined") { var CB_Net = function() { return CB_Net; }; } { CB_Net.initialized = false; //It will tells whether the object has been initialized or not. //Initializes all values: CB_Net.init = function() { if (CB_Net.initialized) { return CB_Net; } //The object has been initialized: CB_Net.initialized = true; //TODO. return CB_Net; } /** * Alias for {@link CB_Net.URIValueEncode}. * @function CB_Net.URLValueEncode * @see {@link CB_Net.URIValueEncode} */ /** * Encodes a given URI value. Uses the native [encodeURIComponent]{@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent} function internally if available or fallbacks to the native [escape]{@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/escape} function otherwise. * @function * @param {string|number} value - The value that we want to encode. Normally, it should be either a string or a number. * @returns {string} * @todo Think about using another thing since [escape]{@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/escape} maybe is not a good fallback. Probably a polyfill to simulate the [encodeURIComponent]{@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURIComponent} function. */ CB_Net.URIValueEncode = CB_Net.URLValueEncode = function(value) { if (typeof(encodeURIComponent) !== "undefined") { return encodeURIComponent(value); } else { return escape(value); } //TODO: think about using another thing since escape maybe is not a good fallback. Probably a polyfill to simulate the encodeURIComponent function. } /** * Alias for {@link CB_Net.URIValueDecode}. * @function CB_Net.URLValueDecode * @see {@link CB_Net.URIValueDecode} */ /** * Decodes a given URI value. Uses the native [decodeURIComponent]{@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent} function internally if available or fallbacks to the native [unescape]{@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/unescape} function otherwise. * @function * @param {string|number} value - The value that we want to decode. Normally, it should be either a string or a number. * @returns {string} * @todo Think about using another thing since [unescape]{@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/unescape} maybe is not a good fallback. Probably a polyfill to simulate the [decodeURIComponent]{@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent} function. */ CB_Net.URIValueDecode = CB_Net.URLValueDecode = function(value) { if (typeof(decodeURIComponent) !== "undefined") { return decodeURIComponent(value); } else { return unescape(value); } //TODO: think about using another thing since unescape maybe is not a good fallback. Probably a polyfill to simulate the decodeURIComponent function. } /** * Alias for {@link CB_Net.URIEncode}. * @function CB_Net.URLEncode * @see {@link CB_Net.URIEncode} */ /** * Encodes a given URI. Uses the native [encodeURI]{@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURI} function internally if available or fallbacks to the native [escape]{@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/escape} function otherwise. * @function * @param {string|number} URI - The URI that we want to encode. Normally, it should be either a string or a number. * @returns {string} * @todo Think about using another thing since [escape]{@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/escape} maybe is not a good fallback. Probably a polyfill to simulate the [encodeURI]{@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/encodeURI} function. */ CB_Net.URIEncode = CB_Net.URLEncode = function(URI) { if (typeof(encodeURI) !== "undefined") { return encodeURI(URI); } else { return escape(URI); } //TODO: think about using another thing since escape maybe is not a good fallback. Probably a polyfill to simulate the encodeURI function. } /** * Alias for {@link CB_Net.URIDecode}. * @function CB_Net.URLDecode * @see {@link CB_Net.URIDecode} */ /** * Encodes a given URI. Uses the native [decodeURI]{@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURI} function internally if available or fallbacks to the native [unescape]{@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/unescape} function otherwise. * @function * @param {string|number} URI - The URI that we want to decode. Normally, it should be either a string or a number. * @returns {string} * @todo Think about using another thing since [unescape]{@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/unescape} maybe is not a good fallback. Probably a polyfill to simulate the [decodeURI]{@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURI} function. */ CB_Net.URIDecode = CB_Net.URLDecode = function(URI) { if (typeof(decodeURI) !== "undefined") { return decodeURI(URI); } else { return unescape(URI); } //TODO: think about using another thing since unescape maybe is not a good fallback. Probably a polyfill to simulate the decodeURI function. } /** * Gets all the "GET" (query) parameters (names and their values) from a given URI or from the current URL. &lt;br /> For example, if the URI provided is "http://whatever.com/index.html?parameter1=value1&amp;amp;parameter2=value2#hash_parameter1=hash_value1&amp;amp;hash_parameter2=hash_value2", it will return "parameter1=value1&amp;amp;parameter2=value2" (using the default options). * @function * @param {string} [URI=[window.location]{@link https://developer.mozilla.org/en-US/docs/Web/API/Window/location}.href] - The URI that we want to work with. If not provided, it will try to use the current URL (by using [window.location]{@link https://developer.mozilla.org/en-US/docs/Web/API/Window/location}.href). * @param {array} [exclude] - A numeric array containing the name of the parameters that we want to exclude in the returned string. It will exclude them even if they are contained in the given "includeOnly" parameter (if any). * @param {array} [includeOnly] - A numeric array containing the name of the parameters that we want to include in the returned string. If provided, it will only include these ones to the returned string (unless they are included in the "exclude" parameter). * @param {boolean} [includeIfNotExists=false] - If it is set to true and an array is given as the "includeOnly" parameter, it will add the parameters in the "includeOnly" array (with empty values) in the returned string even when they did not exist in the original URI provided. * @param {boolean} [trim=true] - Defines whether we want to trim the spaces around the values or not. * @param {string} [firstDelimiter='?'] - The string that indicates where the parameters start. If it is not provided, it will be "?" as default. If not provided and "lastDelimiter" is not provided either, it will be "?" and "lastDelimiter" will be "#". * @param {string} [lastDelimiter=undefined|'#'] - The string that indicates where the parameters end. If not provided and "firstDelimiter" is provided, it will stop at the end of the given URI. If it is not provided and "firstDelimiter" is not provided either, "firstDelimiter" will be "?" and "lastDelimiter" will be "#". * @param {string} [concatenator='&amp;'] - The string that joints the different parameters. * @param {string} [nameValueSeparator='='] - The string that is the separator for the parameters and their values. * @returns {string} An empty string will be returned if no parameters can be found. */ CB_Net.getURIParameters = function(URI, exclude, includeOnly, includeIfNotExists, trim, firstDelimiter, lastDelimiter, concatenator, nameValueSeparator) { concatenator = CB_trim(concatenator); if (concatenator === "") { concatenator = "&amp;"; } nameValueSeparator = CB_trim(nameValueSeparator); if (nameValueSeparator === "") { nameValueSeparator = "="; } firstDelimiter = CB_trim(firstDelimiter); lastDelimiter = CB_trim(lastDelimiter); if (firstDelimiter === "") { firstDelimiter = "?"; if (lastDelimiter === "") { lastDelimiter = "#"; } } URI = CB_trim(URI); if (URI === "") { URI = window.location.href; } if (URI.indexOf(firstDelimiter) !== -1) { URI = URI.substring(URI.indexOf(firstDelimiter) + firstDelimiter.length); } else { return ""; } if (lastDelimiter !== "" &amp;&amp; URI.indexOf(lastDelimiter) !== -1) { URI = URI.substring(0, URI.indexOf(lastDelimiter)); } URI = CB_trim(URI); var filteredURI = URI; if (typeof(trim) === "undefined" || trim === null) { trim = true; } //If set, only includes the desired ones: if (CB_isArray(includeOnly) &amp;&amp; includeOnly.length > 0) { filteredURI = ""; URI = firstDelimiter + URI; for (var x = 0, includeOnlyLength = includeOnly.length; x &lt; includeOnlyLength; x++) { if (includeIfNotExists || URI.toUpperCase().indexOf(includeOnly[x].toUpperCase() + nameValueSeparator) !== -1) { filteredURI += includeOnly[x] + nameValueSeparator + CB_Net.getParameter(includeOnly[x], trim, URI, firstDelimiter, lastDelimiter, concatenator, nameValueSeparator) + concatenator; } } filteredURI = CB_rtrim(filteredURI, [concatenator]); } //If set, excludes the desired ones and/or trims values if desired: var excludePending = false; if (CB_isArray(exclude) &amp;&amp; exclude.length > 0) { excludePending = true; } if (trim || excludePending) { var parametersArray = filteredURI.split(concatenator); var parameterArray; filteredURI = ""; for (x = 0, parametersArrayLength = parametersArray.length; x &lt; parametersArrayLength; x++) { parameterArray = parametersArray[x].split(nameValueSeparator); if (trim || excludePending &amp;&amp; CB_indexOf(exclude, parameterArray[0]) === -1) { if (typeof(parameterArray[1]) !== "undefined" &amp;&amp; parameterArray[1] !== null) { filteredURI += parameterArray[0] + nameValueSeparator + (trim ? CB_trim(parameterArray[1]) : parameterArray[1]) + concatenator; } else { filteredURI += parameterArray[0] + concatenator; } } } filteredURI = CB_rtrim(filteredURI, [concatenator]); } filteredURI = CB_trim(filteredURI, [concatenator]); return filteredURI; } /** * Gets all the hash parameters (names and their values) from a given URI or from the current URL. &lt;br /> For example, if the URI provided is "http://whatever.com/index.html?parameter1=value1&amp;amp;parameter2=value2#hash_parameter1=hash_value1&amp;amp;hash_parameter2=hash_value2", it will return "hash_parameter1=hash_value1&amp;amp;hash_parameter2=hash_value2" (using the default options). * @function * @param {string} [URI=[window.location]{@link https://developer.mozilla.org/en-US/docs/Web/API/Window/location}.href] - The URI that we want to work with. If not provided, it will try to use the current URL (by using [window.location]{@link https://developer.mozilla.org/en-US/docs/Web/API/Window/location}.href). * @param {array} [exclude] - A numeric array containing the name of the parameters that we want to exclude in the returned string. It will exclude them even if they are contained in the given "includeOnly" parameter (if any). * @param {array} [includeOnly] - A numeric array containing the name of the parameters that we want to include in the returned string. If provided, it will only include these ones to the returned string (unless they are included in the "exclude" parameter). * @param {boolean} [includeIfNotExists=false] - If it is set to true and an array is given as the "includeOnly" parameter, it will add the parameters in the "includeOnly" array (with empty values) in the returned string even when they did not exist in the original URI provided. * @param {boolean} [trim=true] - It will use this option when it calls the {@link CB_Net.getURIParameters} function internally. * @returns {string} An empty string will be returned if no parameters can be found. */ CB_Net.getHashParameters = function(URI, exclude, includeOnly, includeIfNotExists, trim) { return CB_Net.getURIParameters(URI, exclude, includeOnly, includeIfNotExists, trim, "#"); } /** * Gets the value of a specific URI parameter (query or hash), respecting GET/URL rules by default, from the current URL or a desired one (with the given delimiters). &lt;br /> For example, if the URI provided is "http://whatever.com/index.html?parameter1=value1&amp;amp;parameter2=value2#hash_parameter1=hash_value1&amp;amp;hash_parameter2=hash_value2" and the index given is "parameter1", it will return "value1" (using the default options). * @function * @param {string} index - The name of the parameter whose value we want to get. * @param {boolean} [trim=true] - It will trim the value (using {@link CB_trim} internally) before returning it. * @param {string} [URI=[window.location]{@link https://developer.mozilla.org/en-US/docs/Web/API/Window/location}.href] - The URI that we want to work with. If not provided, it will try to use the current URL (by using [window.location]{@link https://developer.mozilla.org/en-US/docs/Web/API/Window/location}.href). * @param {string} [firstDelimiter='?'] - The string that indicates where the parameters start. If it is not provided, it will be "?" as default. If not provided and "lastDelimiter" is not provided either, it will be "?" and "lastDelimiter" will be "#". * @param {string} [lastDelimiter=undefined|'#'] - The string that indicates where the parameters end. If not provided and "firstDelimiter" is provided, it will stop at the end of the given URI. If it is not provided and "firstDelimiter" is not provided either, "firstDelimiter" will be "?" and "lastDelimiter" will be "#". * @param {string} [concatenator='&amp;'] - The string that joints the different parameters. * @param {string} [nameValueSeparator='='] - The string that is the separator for the parameters and their values. * @returns {string} An empty string will be returned if the value of the given parameter cannot be found. */ CB_Net.getParameter = function(index, trim, URI, firstDelimiter, lastDelimiter, concatenator, nameValueSeparator) { if (typeof(trim) === "undefined" || trim === null) { trim = true; } index = CB_trim(index).toUpperCase(); if (index === "") { return ""; } concatenator = CB_trim(concatenator); if (concatenator === "") { concatenator = "&amp;"; } nameValueSeparator = CB_trim(nameValueSeparator); if (nameValueSeparator === "") { nameValueSeparator = "="; } firstDelimiter = CB_trim(firstDelimiter); lastDelimiter = CB_trim(lastDelimiter); if (firstDelimiter === "") { firstDelimiter = "?"; if (lastDelimiter === "") { lastDelimiter = "#"; } } URI = CB_trim(URI); if (URI === "") { URI = window.location.href; } if (URI.indexOf(firstDelimiter) !== -1) { URI = URI.substring(URI.indexOf(firstDelimiter) + firstDelimiter.length); } else { return ""; } if (lastDelimiter !== "" &amp;&amp; URI.indexOf(lastDelimiter) !== -1) { URI = URI.substring(0, URI.indexOf(lastDelimiter)); } URI = CB_trim(URI); if (URI === "") { return ""; } var value = ""; var URIUpperCase = URI.toUpperCase(); var indexOfFound = URIUpperCase.indexOf(index + nameValueSeparator); if (indexOfFound !== -1) { URI = URI.substring(indexOfFound + index.length + nameValueSeparator.length); if (URI.indexOf(concatenator) !== -1) { URI = URI.substring(0, URI.indexOf(concatenator)); } value = URI; } if (trim) { value = CB_trim(value); } return CB_Net.URIValueDecode(value); } /** * Gets the value of a specific URI "GET" parameter (query) from the current URL or a desired URI. &lt;br /> For example, if the URI provided is "http://whatever.com/index.html?parameter1=value1&amp;amp;parameter2=value2#hash_parameter1=hash_value1&amp;amp;hash_parameter2=hash_value2" and the index given is "parameter1", it will return "value1" (using the default options). * @function * @param {string} index - The name of the parameter whose value we want to get. * @param {boolean} [trim=true] - It will trim the value (using {@link CB_Net.getParameter} internally) before returning it. * @param {string} [URI=[window.location]{@link https://developer.mozilla.org/en-US/docs/Web/API/Window/location}.href] - The URI that we want to work with. If not provided, it will try to use the current URL (by using [window.location]{@link https://developer.mozilla.org/en-US/docs/Web/API/Window/location}.href). * @returns {string} An empty string will be returned if the value of the given parameter cannot be found. */ CB_Net.getURIValue = function(index, trim, URI) { return CB_Net.getParameter(index, trim, URI, "?", "#"); } /** * Gets the value of a specific hash (string after "#") parameter from the current URL or a desired URI. &lt;br /> For example, if the URI provided is "http://whatever.com/index.html?parameter1=value1&amp;amp;parameter2=value2#hash_parameter1=hash_value1&amp;amp;hash_parameter2=hash_value2" and the index given is "hash_parameter1", it will return "hash_value1" (using the default options). * @function * @param {string} index - The name of the parameter whose value we want to get. * @param {boolean} [trim=true] - It will trim the value (using {@link CB_Net.getParameter} internally) before returning it. * @param {string} [URI=[window.location]{@link https://developer.mozilla.org/en-US/docs/Web/API/Window/location}.href] - The URI that we want to work with. If not provided, it will try to use the current URL (by using [window.location]{@link https://developer.mozilla.org/en-US/docs/Web/API/Window/location}.href). * @returns {string} An empty string will be returned if the value of the given parameter cannot be found. */ CB_Net.getHashValue = function(index, trim, URI) { return CB_Net.getParameter(index, trim, URI, "#"); } /** * Alias for {@link CB_Net.combineURIParameters}. * @function CB_Net.combineURLParameters * @see {@link CB_Net.combineURIParameters} */ /** * Alias for {@link CB_combineURIParameters}. * @function CB_Net.combineURIParameters * @see {@link CB_combineURIParameters} */ CB_Net.combineURIParameters = CB_Net.combineURLParameters = function(parametersA, parametersB) { return CB_combineURIParameters(parametersA, parametersB); }; }</pre> </article> </section> </div> </div> <div class="clearfix"></div> </div> </div> <div class="modal fade" id="searchResults"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> <h4 class="modal-title">Search results</h4> </div> <div class="modal-body"></div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> </div> </div><!-- /.modal-content --> </div><!-- /.modal-dialog --> </div> <footer> <span class="copyright"> <span style="color:#000000">© <address style="display:inline; font-style:normal;"><a href="https://crossbrowdy.com/" target="_blank">CrossBrowdy</a> API documentation</address> by <a href="https://joanalbamaldonado.com/" target="_blank">Joan Alba Maldonado</a> - <a href="https://creativecommons.org/licenses/by/4.0/" target="_blank">Creative Commons Attribution 4.0 International</a><br />DocStrap Copyright © 2012-2015 The contributors to the JSDoc3 and DocStrap projects.</span> </span> <span class="jsdoc-message"> Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.2</a> on Wed Mar 22nd 2023 using the <a href="https://github.com/docstrap/docstrap">DocStrap template</a>. </span> </footer> <script src="scripts/docstrap.lib.js"></script> <script src="scripts/toc.js"></script> <script type="text/javascript" src="scripts/fulltext-search-ui.js"></script> <script> $( function () { $( "[id*='$']" ).each( function () { var $this = $( this ); $this.attr( "id", $this.attr( "id" ).replace( "$", "__" ) ); } ); $( ".tutorial-section pre, .readme-section pre, pre.prettyprint.source" ).each( function () { var $this = $( this ); var example = $this.find( "code" ); exampleText = example.html(); var lang = /{@lang (.*?)}/.exec( exampleText ); if ( lang && lang[1] ) { exampleText = exampleText.replace( lang[0], "" ); example.html( exampleText ); lang = lang[1]; } else { var langClassMatch = example.parent()[0].className.match(/lang\-(\S+)/); lang = langClassMatch ? langClassMatch[1] : "javascript"; } if ( lang ) { $this .addClass( "sunlight-highlight-" + lang ) .addClass( "linenums" ) .html( example.html() ); } } ); Sunlight.highlightAll( { lineNumbers : true, showMenu : true, enableDoclinks : true } ); $.catchAnchorLinks( { navbarOffset: 10 } ); $( "#toc" ).toc( { anchorName : function ( i, heading, prefix ) { return $( heading ).attr( "id" ) || ( prefix + i ); }, selectors : "#toc-content h1,#toc-content h2,#toc-content h3,#toc-content h4", showAndHide : false, smoothScrolling: true } ); $( "#main span[id^='toc']" ).addClass( "toc-shim" ); $( '.dropdown-toggle' ).dropdown(); $( "table" ).each( function () { var $this = $( this ); $this.addClass('table'); } ); } ); </script> <!--Navigation and Symbol Display--> <!--Google Analytics--> <script type="text/javascript"> $(document).ready(function() { SearcherDisplay.init(); }); </script> </body> </html>