location.href 절대경로로 이동시키기

·2022년 12월 13일
0

button에 onClick 이벤트로 페이지를 이동시켜야 하는 일이 생겼다.
<button onClick={()=>location.href=data.url}></button>
이 때 http로 시작하는 프로토콜이 있는 경로를 받으면 문제 없지만
www로 시작하는 경로를 받게 되면 상대 경로로 넘어가는 문제가 생겼다.

이전까지는 늘 백에서 프로토콜을 제외한 주소를 보내주어서 생각도 못해본 문제였다.
그래서인지 내가 location에 대해서 잘 못 이해하고 있었는지에 대한 고민에 빠졌고, 구글링에 내가 찾는 답도 잘 안나오고.. mdn도 다시 뒤져보고.. 그러다가 아래의 블로그에서 답을 찾을 수 있었다.
https://shanepark.tistory.com/329


결과 코드

const getAbsolutePath = (link:string):string =>{
  return link.indexOf('://')>0 ? link : `http://${link}`;
}

결국 방법은 문자열 검사로 프로토콜을 붙여주는 것이다.
문자열 검사로 ://가 포함되면 그대로 반환, 아니면 http를 붙여서 리턴한다.
https는 대게 http로 접속해도 리다이렉트를 해주기 때문에 문제 없을 것이라는 판단.

profile
나 예인쓰, 응애인디

0개의 댓글