You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

47 rivejä
1.5 KiB

  1. /**
  2. * Copyright (c) 2010 Conrad Irwin <conrad@rapportive.com> MIT license.
  3. * Based loosely on original: Copyright (c) 2008 mkmanning MIT license.
  4. *
  5. * Parses CGI query strings into javascript objects.
  6. *
  7. * See the README for details.
  8. **/
  9. define([
  10. "jquery"
  11. ], function($){
  12. $.parseQuery = function (options) {
  13. var config = {query: window.location.search || ""},
  14. params = {};
  15. if (typeof options === 'string') {
  16. options = {query: options};
  17. }
  18. $.extend(config, $.parseQuery, options);
  19. config.query = config.query.replace(/^\?/, '');
  20. if (config.query.length > 0) {
  21. $.each(config.query.split(config.separator), function (i, param) {
  22. var pair = param.split('='),
  23. key = config.decode(pair.shift(), null).toString(),
  24. value = config.decode(pair.length ? pair.join('=') : null, key);
  25. if (config.array_keys.test ? config.array_keys.test(key) : config.array_keys(key)) {
  26. params[key] = params[key] || [];
  27. params[key].push(value);
  28. } else {
  29. params[key] = value;
  30. }
  31. });
  32. }
  33. return params;
  34. };
  35. $.parseQuery.decode = $.parseQuery.default_decode = function (string) {
  36. return decodeURIComponent((string || "").replace(/\+/g, ' '));
  37. };
  38. $.parseQuery.array_keys = function () {
  39. return false;
  40. };
  41. $.parseQuery.separator = "&";
  42. });