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


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.