JavaScript에서 상대 URL로 리디렉션


363

문제가 있습니다 : JavaScript를 통해 위의 디렉토리로 리디렉션하고 싶습니다. 내 코드 :

location.href = (location.href).substr(0, (location.href).lastIndexOf('folder'));

URL은 다음과 같습니다.

example.com/path/folder/index.php?file=abc&test=123&lol=cool

리디렉션은 이것에만 영향을 미칩니다.

example.com/path/&test=123&lol=cool

그러나 이것을 원합니다 :

example.com/path/

내가 어떻게 할 수 있습니까?

답변:


684

상대 경로 재 지정을 수행 할 수 있습니다.

window.location.href = '../'; //one level up

또는

window.location.href = '/path'; //relative to domain

29
당신이 사용해야하는 이유를 참조 window.location.replace stackoverflow.com/questions/503093/...
기드온

52
링크를 시뮬레이션하려면을 사용해야합니다 window.location.href. window.location.replacehttp 리디렉션을 시뮬레이션하려는 경우 에만 사용 하십시오 (따라서 히스토리 항목을 생성하지 않음).
Benji XVI

24
그건 그렇고, document.location읽기 전용 속성으로 설계되었습니다. 사용하는 것이 더 안전합니다 window.location. 이 질문을 참조하십시오 .
Benji XVI

6
window.location.href = '../'예상대로 "한 단계 위"가 아닌 사이트의 루트로 리디렉션을 사용하는 것을 발견했습니다 . 현재 페이지가 "www.example.com/customers/list"인 경우을 사용해야했습니다 './'. "list"가 디렉토리 레벨로 간주되지 않기 때문입니다.
Marcus Cunningham

2
예를 들어, @MarcusCunningham은 디렉토리가 / customers /이므로 "한 단계 위"는 www.example.com/입니다. 이제 URL 예가 www.example.com/customers/list/ 인 경우 www.example.com/customers/로 리디렉션됩니다.
Ubeogesh

12

당신이 사용 location.hostname하면 domain.com 부분을 얻을 것이다. 그런 다음 location.pathname/ path / folder를 제공합니다. location.pathname/로 나누고 URL을 다시 어셈블합니다. 그러나 쿼리 문자열이 필요하지 않으면 ..위의 디렉토리로 이동하여 리디렉션 할 수 있습니다 .


내 브라우저 껍질은 내가 갈 때 location.path을 하고 만 인식하는 것 같다 location.pathname을 . 힌트?
Konrad Viltersten

location.path가 올바르지 않습니다. location.hostname이어야합니다. 이 문제를 해결하기 위해 게시물에 수정 사항을 추가했습니다.
ygrichman



5

<a href="..">no JS needed</a>

.. 부모 디렉토리를 의미합니다.


14
클릭 또는 다른 사용자 시작 탐색이 필요합니다.
재귀

2

JavaScript를 사용하여 현재 웹 사이트를 같은 페이지의 다른 섹션으로 리디렉션하려고합니다. 다음 코드는 나를 위해 작동합니다.

location.href='/otherSection'

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.