12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- /*******************************************************************************
- *
- * ParsedQueryString version 1.0
- * Copyright 2007, Jeff Mott <Mott.Jeff@gmail.com>. All rights reserved.
- *
- * Redistribution and use in source and binary forms with or without
- * modification are permitted provided that the above copyright notice,
- * this condition, and the following disclaimer are retained.
- *
- * THIS SOFTWARE IS PROVIDED AS IS, AND ANY EXPRESS OR IMPLIED WARRANTIES,
- * INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
- * FITNESS FOR A PARTICULAR PURPOSE, ARE DISCLAIMED. IN NO EVENT SHALL THE
- * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT
- * LIMITED TO PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- ******************************************************************************/
- function ParsedQueryString() {
- this._init();
- }
- ParsedQueryString.version = '1.0';
- ParsedQueryString.prototype =
- {
- _init:
- function ()
- {
- this._parameters = {};
- if (location.search.length <= 1)
- return;
- var pairs = location.search.substr(1).split(/[&;]/);
- for (var i = 0; i < pairs.length; i++)
- {
- var pair = pairs[i].split(/=/);
- var name = this._decodeURL(pair[0]);
- if (Boolean(pair[1]))
- {
- var value = this._decodeURL(pair[1]);
- if (Boolean(this._parameters[name]))
- this._parameters[name].push(value);
- else
- this._parameters[name] = [value];
- }
- }
- },
- _decodeURL:
- function (url) {
- return decodeURIComponent(url.replace(/\+/g, " "));
- },
- param:
- function (name)
- {
- if (Boolean(this._parameters[name]))
- return this._parameters[name][0];
- else
- return "";
- },
- params:
- function (name)
- {
- if (Boolean(name))
- {
- if (Boolean(this._parameters[name]))
- {
- var values = [];
- for (var i = 0; i < this._parameters[name].length; i++)
- values.push(this._parameters[name][i]);
- return values;
- }
- else
- return [];
- }
- else
- {
- var names = [];
- for (var name in this._parameters)
- names.push(name);
- return names;
- }
- }
- };
|