diff --git a/sortt.js b/sortt.js index ba55c6f..a42049d 100644 --- a/sortt.js +++ b/sortt.js @@ -22,50 +22,24 @@ window.sortt=function(normsort,revsort,isdefault){ NO: if sort=“” indikates default (with * prefix) set url_sort= YES: set url_sort variable */ - url_sort=""; - if (window.location.search.indexOf("sort=") < 0) { - if ( isdefault ) url_sort = normsort; - url_sort = ""; - } else { - url_sort=window.location.search.substr(window.location.search.indexOf("sort=")+5); - if (url_sort.indexOf("&") >= 0) url_sort=url_sort.substr(0,url_sort.indexOf("&")); - } + let url = new URL(window.location); + let url_sort = url.searchParams.get("sort"); + if ((url_sort === null) && isdefault) url_sort = normsort; // generate new URL /* script check if url_sort and sort attribute is same - YES: check if reverse attribute exist -> YES: generate URL with reverse sort param and open - NO: generate URL with sort param and open + NO: generate URL with sort param + YES: check if reverse attribute exist -> YES: generate URL with reverse sort param */ - url_new = window.location.protocol + "//" + window.location.host + window.location.pathname; - if (window.location.search.length == 0) { - if (url_sort != normsort) { - window.location.replace(url_new + "?sort=" + normsort); - } else if (revsort != "") { - window.location.replace(url_new + "?sort=" + revsort); - } - } else { - if (window.location.search.indexOf("sort=") >= 0) { - tmp = window.location.search.substr(window.location.search.indexOf("sort=")+5); - if (tmp.indexOf("&") >= 0) { - tmp = tmp.substr(tmp.indexOf("&")); - } else { - tmp = ""; - } - } - if (window.location.search.indexOf("sort=") >= 0) { - if (url_sort != normsort) { - window.location.replace(url_new + window.location.search.substr(0,window.location.search.indexOf("sort=")+5) + normsort + tmp); - } else if (revsort != "") { - window.location.replace(url_new + window.location.search.substr(0,window.location.search.indexOf("sort=")+5) + revsort + tmp); - } - } else { - if (url_sort != normsort) { - window.location.replace(url_new + window.location.search + "&sort=" + normsort); - } else if (revsort != "") { - window.location.replace(url_new + window.location.search + "&sort=" + revsort); - } - } + if (url_sort != normsort) { + url.searchParams.delete("sort"); + url.searchParams.append("sort",normsort); + } else if (revsort != "") { + url.searchParams.delete("sort"); + url.searchParams.append("sort",revsort); } + //open url + window.location.replace(url.href); };