728x90
반응형

요로코롬 메뉴바가 있다.
허졉하지만 메뉴바임ㅇㅇ/..
앞에 했던 spring message로 변경을 한다고 치면
아마 url에 param이 붙어서 엉망이될 것이다.. 아마도
예를들어 현재 영어인상태에서 영어를 한번 더 누른다면 praram에 lang=en이 하나 더 붙어버리는 끔찍한 상황이 발생한다..
그걸 고쳐보자 ㅇㅇ
여기서는 js로 처리를 할것이다.


해당 링크를 클릭하면, 해당 id 값을 가져오고 현재의 url을 가져와서
해당 param이 있는지 없는지 검사를 한 후
없다면?
> append로 해당 param을 추가시키도록 설정했다.
있다면?
> set으로 해당 param vlaue를 수정하도록 설정했다.
그후 해당 창을 열기
$(".nav-link").click(function (){
let lang =$(this).attr("id");
// https: or http:
let http = window.location.protocol;
let pathname = window.location.pathname;
// ?뒤의 모든것 (All parameters)
let search = window.location.search;
let params = new URLSearchParams(search);
if (!params.has('lang')) {
params.append('lang', lang);
window.location.href = '' + http + pathname + '?' + params + '';
} else {
params.set('lang', lang);
window.location.href = '' + http + pathname + '?' + params + '';
}
결과
한국어를 두번을 누르든 세번을 누르든 네번을 누르든 잘 작동되고
lang=en 이라는 parma이 붙어있는 상태라도 해당 prama 을 지우고 ko든 en이든 수정을 시켜준다 ㅇㅇ 굿ㅋ

좀 허졉해보여도 잘 된다ㅇㅇ..
728x90
반응형
'Language > Java Script' 카테고리의 다른 글
| 국가 코드 (0) | 2022.02.23 |
|---|---|
| .empty() (0) | 2022.02.08 |
| window.location (0) | 2022.01.11 |
| var, let, const 차이점 (0) | 2022.01.03 |
| 현재 메뉴를 하이라이트 처리하기 (0) | 2022.01.03 |
| 함수 호출 방식 (0) | 2022.01.03 |