현재 페이지를 다시로드하는 링크


175

현재 위치를 가리키는 일반 링크를 가질 수 있습니까?

나는 현재 2 가지 해결책을 찾았지만 그중 하나는 JavaScript를 포함하고 다른 하나는 페이지의 절대 경로를 알아야합니다.

<a href="#" onclick="window.location.reload(true);">1</a>
<a href="/foobar/">2</a>
<a href="#">3 (of course not working)</a>

JavaScript를 사용하거나 절대 경로를 알지 않고도이 작업을 수행 할 수있는 방법이 있습니까?

답변:


198

나는 사용하고있다 :

<a href=".">link</a>

의도 한대로 작동하지 않는 케이스 및 / 또는 브라우저를 아직 찾지 마십시오.

마침표는 현재 경로를 의미합니다. ..예를 들어이 파일 구조가있는 경우 현재 경로 위의 폴더를 참조하는 데 사용할 수도 있습니다 .

page1.html
folder1
    page2.html

그러면 다음과 같이 page2.html쓸 수 있습니다 .

<a href="../page1.html">link to page 1</a>

편집하다:

동작이 변경되었는지 또는 항상 이와 같은지 확실하지 않지만 Chrome (및 기타)은 파일이 아닌 디렉토리 와 관련하여 위에서 설명한 기간을 처리 합니다. 당신은에있는 경우 있음이 수단 http://example.com/foo/bar.html디렉토리에 정말 당신 /foo/href의 값 .에서이 bar.html참조 것 /foo/보다는bar.html

터미널에서 파일 시스템을 탐색하는 것으로 생각하십시오. 당신은 절대 cd파일로 들어갈 수 없습니다 :)

편집 2 :

사용 동작이 href="."더 이상 예측할 수없는 것 같습니다. Firefox와 Chrome 모두 처리 방식이 변경되었을 수 있습니다. 나는 원래의 대답에만 전적으로 의존하지는 않지만 특정 용도로 빈 브라우저와 다른 브라우저에서 마침표를 모두 사용하고 원하는 동작을 얻도록하십시오.


25
GET 데이터는이 방법으로 보존되지 않지만 "하드 리로드"로 간주하십시오. 빈 href 값을 사용하면 GET 데이터는 유지되지만 해시 값은 #these와 같이 지워집니다. # 또는? href 값으로 새 URL에 "쓰레기"가 추가됩니다. 기간을 사용하는 것이 다시로드를 달성하는 가장 깨끗한 방법이라는 것을 알았습니다.
Markus Amalthea Magnuson

5
이 기술은 Mac 크롬에서 작동하지 않습니다. "."을 사용하고 있지만 anhor처럼 ".."처럼 동작하며 상위 페이지로 연결됩니다. 예를 들어 / admin / stuff는 / admin이됩니다. 다른 사람이이 행동을보고 있습니까?
Zac

3
이 솔루션은 잘못되었습니다. 또한 Chrome에서는 작동하지 않으며 부모 디렉토리를 가리 킵니다. @MarkusAmaltheaMagnuson이 제안한 것처럼 empty href를 사용해야합니다.
coorasse

8
URL의 경로 구성 요소가로 끝나는 경우에만 작동하는 것 같습니다 /.
Kos

6
현재 Firefox 또는 Chrome에서는 작동하지 않습니다. 두 브라우저 모두 href = "를 사용하여 현재 디렉토리가 아닌 상위 디렉토리를 참조합니다."
jtubre 2016 년

135

다른 답변은 쿼리 문자열 값을 포함하지 않습니다. 시험

<a href="javascript:window.location.href=window.location.href">

분명히 이것은 자바 스크립트와 관련이 있지만 사용자가 스크립트를 비활성화하지 않는 한 이것은 매우 간단합니다.


5
작동하지 않습니다 (Chrome 32). <a href="javascript:location.reload();"> </a>를 선호합니다
Gabriel

3
Chrome 36.0.1985을 사용하고 있으며 javascript : window.location.href = window.location.href가 작동합니다. location.reload ()는 Firefox에서 페이지를 새로 고치려는 경우 사용자에게 메시지를 표시하는 불행한 영향을 미치며 시나리오에 따라 원하는 결과를 제공하지 못할 수 있습니다. 자세한 내용은 stackoverflow.com/questions/2405117/… 를 참조하십시오 .
Simon Molloy

1
라우팅과 함께 각도를 사용하고 있습니다. 이것은 나를 위해 작동하지 않았습니다. 그러나 이것은 작동합니다-> <a href="javascript:"> click me </a>
John Henckel

js가 비활성화되면 어떻게됩니까?

5
이 솔루션은 앵커를 보존하지 않습니다
thomas.winckell

77

자바 스크립트를 사용하는 한 가지 방법 :

<a href="javascript:window.location.reload(true)">Reload</a>

4
쿼리 문자열과 앵커 ( ?query=string#anchor)를 유지합니다 . 큰!
analog-nico

스크롤 위치도 유지되기 때문에이 답변을 사용했습니다. 재로드를 의사 "실행 취소"버튼으로 사용하는 경우에 유용합니다.
igneosaur

이 솔루션은 React client
Andrius

HTML 구문에서 이것을 사용하는 방법에 대해 자세히 설명해 주시겠습니까?
Joanna Mikalai

질문이 있습니다. true매개 변수는 window.location.reload메소드를 사용할 때이 문제에 대해 실제로 무엇을해야 합니까? 캐시를 가져 오는 것을 피하는 하드 새로 고침이 될 것입니다. 일부 상황에서 원하는 것일 수도 있지만 대부분의 상황에서 캐시를 활용하고 싶을 것입니다.
Stephen M 어빙

31

당신은 이것을 할 수 있습니다 : <a href="">This page</a>

하지만 GET 및 POST 데이터를 유지한다고 생각하지 않습니다.


3
불행히도 IE에서는 작동하지 않습니다. 보낸 사람 : msdn.microsoft.com/ko-kr/library/cc848861%28v=vs.85%29.aspx-HREF 가 빈 값 (href = ""또는 href =)으로 지정된 경우 링크를 실행하면 현재 문서가 포함 된 디렉토리이거나 문서의 다른 요소 및 서버 환경에 따라 오류가 발생할 수 있습니다.
Bohdan Lyzanets

12
<a href="<?php echo $_SERVER["REQUEST_URI"]; ?>">Click me</a>

12
PHP를 사용하지 않습니다.
Tyilo

3
-1을 알았으므로 귀하의 경우 해결책이 아닐 수도 있습니다 (php 솔루션이므로) 여기에서 가장 깨끗한 해결책이라고 생각합니다. href 속성에 유효한 값을 제공하기 때문에 가장 깨끗합니다. 가능하면 자바 스크립트를 피하십시오. +1입니다.
rofavadeka

매우 도움이됩니다. 왜 이것이 거절 되는가? 원래 질문은 js를 언급하지 않으며 여기에서 대부분의 q는 JS를 참조합니다.
Andrew

@Andrew 원래 질문은 #html 및 #hyperlink로 태그가 지정됩니다. "현재 위치를 가리키는 일반 링크"는 매우 모호한 설명이지만 클라이언트 측 전용 솔루션을 찾는 것으로 합리적으로 해석 될 수 있다고 확신합니다. href가 PHP로 채워지는 앵커는 "일반 링크"가 아니며 PHP 코드입니다.
풍토병

@endemic 자바 스크립트를 제안하는 것은 "정상"이며 php는 의미없는 의견이 아닙니다. OP는 실제로 일반을 자바 스크립트를 포함하지 않고 절대 경로를 사용하지 않는 것으로 정의합니다. 흥미롭게도 대부분의 답변은 자바 스크립트에 있습니다.
Andrew

10

현재 페이지 새로 고침 / 새로 고침에 사용

<a href="#" onclick="window.location.reload(true);">

또는 사용

<a href="">refresh</a>

9
<a href=".">refresh current page</a>

또는 매개 변수를 전달하려는 경우 :

<a href=".?curreny='usd'">refresh current page</a>

7

<a href="https://stackoverflow.com/">Clicking me refreshes the page</a>

<a href="?">Click Me To Reload the page</a>


3
이것은 index.html 또는 다른 루트 문서 / URL에있는 경우에만 작동합니다.
Stephen

물론 @ 스테판. 당신 말이 맞아요 분명히 나는 ​​생각했던 것보다 더 꼼꼼하다. 방금 테스트를 거쳤고 루트에 올랐습니다.
Thomas Shields

URL이 예일 때 매우 잘 작동합니다. / blablabla 반면에. 다시 뿌리 내릴 것입니다.
Augustin Riedinger

6

불행히도 HTML 만으로이 작업을 수행하는 전역적인 방법은 없습니다. 시도해 볼 수는 <a href="">test</a>있지만 일부 브라우저에서만 작동합니다.


IE에서는 작동하지 않습니다. 보낸 사람 : msdn.microsoft.com/ko-kr/library/cc848861%28v=vs.85%29.aspx-HREF 가 빈 값 (href = ""또는 href =)으로 지정된 경우 링크를 실행하면 현재 문서가 포함 된 디렉토리이거나 문서의 다른 요소 및 서버 환경에 따라 오류가 발생할 수 있습니다.
Bohdan Lyzanets

1
테스트를 거쳤으며 모든 주요 최신 브라우저 (Chrome, Firefox, Edge, Opera, Safari)에서 작동합니다.
Donald Duck

5

경로, 매개 변수 및 앵커를 유지하는 완전히 dem 등한 URL입니다.

 <a href="javascript:"> click me </a>

단지 작은 비트의 JS 만 사용합니다.

편집 : 페이지를 다시로드하지 않습니다. 아무것도하지 않는 링크입니다.


@FranciscoCorralesMorales, 죄송하지만 질문을 잘못 이해했다고 생각합니다. OP가 아무것도하지 않는 링크를 만들려고한다고 생각했습니다. 그러나 이제 OP는 현재 페이지를 다시로드 할 링크를 원한다는 것을 알았습니다. (편집하겠습니다).
존 헨켈

이 코드 스 니펫에 감사드립니다. 즉각적인 도움이 될 수 있습니다. 적절한 설명 이것이 문제에 대한 좋은 해결책 인지 보여줌으로써 교육적 가치를 크게 향상시킬 것이며 , 유사하지만 동일하지 않은 질문을 가진 미래 독자들에게 더 유용 할 것입니다. 제발 편집 설명을 추가하고, 제한 및 가정이 적용 무엇의 표시를 제공하는 답변을.
Toby Speight


2

IE9에서는 허용되는 답변이 작동하지 않지만 다음과 같이했습니다.

<a href="?">link</a>

1
쿼리 문자열 매개 변수를 유지하는 데 관심이 있다면 이것이 효과가 있다고 생각하지 않습니다.
WynandB

1
@WynandB가 정확합니다. 이것은 모든 GET 및 POST 매개 변수를 삭제합니다. 그것이 당신이 원하는 것이거나, 신경 쓰지 않는다면,이 트릭은 훌륭하게 작동합니다.
hanshenrik 2016 년

2

하나 더 솔루션

<a href="javascript:history.go(0)">Reload</a>

좋은 해결책! 이 메소드의 작은 팁은 0이 기본 매개 변수이므로 다시로드하려고하면 history.go()인수없이 작성할 수 있습니다 .
Stephen M 어빙

2
<a href="">Refresh!</a>

비워두면 href=""페이지가 새로 고쳐집니다.
일부 정보가 양식을 사용하여 전달되는 경우에도 작동합니다.


0

JS를 사용하여 jekyll 사이트의 태그 페이지에 특정 ID가있는 div 만 표시합니다. 동일한 페이지에 일련의 링크가 있으면 해당 요소가 표시됩니다.

function hide_others() {
    $('div.item').hide();
    selected = location.hash.slice(1);
    if (selected) {
        $('#' + selected).show();
    }
    else {
    $('div.item').show();
    }
}

링크는 다음과 같은 링크를 사용합니다.

<a href="javascript:window.location.href='/tags.html#{{ tag[0] }}-ref'; hide_others()">{{ tag[0] }}</a>

0

양식을 사용하여 동일한 URL에 POST를 수행 할 수 있습니다.

 <form  method="POST" name="refresh" id="refresh">
 <input type="submit" value="Refresh" />
 </form>

현재 페이지를 새로 고치는 버튼이 제공됩니다. 사용자가 브라우저 새로 고침 버튼을 누르면 do you want to resubmit the form메시지 가 표시 되기 때문에 약간 성가시다 .


0

이 문제를 해결하기 위해 HTML을
사용하고 있습니다.

<a href="page1.html"> Link </a>

* page1.html-> 작업중인 파일 이름 (현재 HTML 파일)을 입력하십시오.


게시물을 수정하십시오. 어떤 프로그래밍 언어를 사용하고 있는지, 코드를 어떻게 구현하려고했는지는 명확하지 않습니다.
Roee Anuar

이 작업을 수행하기 위해 HTML 을 사용했습니다 .
Ayush Kumar

-1
<a href="/">Same domain, just like refresh</a>

귀하의 웹 사이트가 index.html, index.htm 또는 index.php (모든 기본 페이지) 인 경우에만 작동하는 것 같습니다.

그러나 그것은 .똑같은 것이며 더 받아 들여집니다.

<a href=".">Same domain, just like refresh, (more used)</a>

크롬에 두 작업 완벽한 도메인 인 경우 모두 http://https://


-2

<a href="https://stackoverflow.com/home" target="_self">Reload the page</a>


우리는 URL ... 대상을 잘 모릅니다하면 문제가 = "_ 자기"ommited 할 수 있습니다
Hafenkranich

-3

PHP / smarty 템플릿을 사용하는 경우 다음과 같이 할 수 있습니다.

<a href="{{$smarty.server.REQUEST_URI}}{if $smarty.server.REQUEST_URI|strstr:"?"}&{else}?{/if}newItem=1">Add New Item</a>

-4

target = "_ blank"를 추가하면 링크가 원본 페이지를 유지하는 새 페이지를 엽니 다.


당신이 말했듯이, 이것은 href새로운 창 / 탭 의 속성에 지정된 페이지를 열면됩니다 . 이것은 실제 질문에 어떤 식 으로든 대답하지 않습니다.
Philip Stratford
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.