Основной модуль главреда, его каркас | Main module of Glavred, its skeleton
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.

38 lines
1.4KB

  1. задатьПараметрВСтрокеПоиска = (ключПараметра, значениеПараметра) =>
  2. {
  3. var строкаПоиска = decodeURI(window.location.search);
  4. var текущийАдрес = decodeURI(window.location.href);
  5. // Заменить параметр.
  6. if (строкаПоиска.includes(`${ключПараметра}=`))
  7. {
  8. var части = строкаПоиска.split(/[\?&]/);
  9. for (var номер in части)
  10. {
  11. var часть = части[номер];
  12. if (часть.startsWith(`${ключПараметра}=`))
  13. {
  14. var значение = часть.split("=")[1];
  15. var адрес = текущийАдрес.replace(значение, значениеПараметра);
  16. history.pushState(null, "", адрес);
  17. break;
  18. }
  19. }
  20. }
  21. // Добавить параметр.
  22. else
  23. {
  24. var префикс = "?";
  25. if (строкаПоиска.startsWith("?"))
  26. {
  27. префикс = "&";
  28. }
  29. var адрес = текущийАдрес + префикс + `${ключПараметра}=` + значениеПараметра;
  30. history.pushState(null, "", адрес);
  31. }
  32. };
  33. setSearchQueryParameter = задатьПараметрВСтрокеПоиска;