Показать сообщение отдельно
  #2 (permalink)  
Старый 25.10.2014, 14:29
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

function parseURL(url) {
  var parts = url.split('?');
      link = parts.length > 1 ? parts.shift() : '';
      gets = parts.join('?').split('&'),
      data = {};

  for(var index = 0; index < gets.length; index++) {
    parts = gets[index].split('=');
    assignValue(data, decodeURIComponent(parts.shift()), decodeURIComponent(parts.join('=')));
  }

  function assignValue(data, key, value) {
    var parts = key.replace(/\[(.*?)\]/g, '.$1').split(/\./);
    key = parts.shift();
    if (parts.length === 0) {
      data[key] = value;
    } else {
      assignValue(key in data ? data[key] : (data[key] = {}), parts.join('.'), value);
    }
  }

  return {
    link: link,
    data: data
  }
}

alert(
  JSON.stringify(
    parseURL('http://localhost/index.php?page=user&tt=tab&pop=2&sort%5B0%5D%5B0%5D=id&sort%5B0%5D%5B1%5D=down&tn=users&nv%5B0%5D=id&nv%5B1%5D=skype&cp=5'
    ),
    null,
    '    '
  )
);
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием