2016-07-19 2 views
-1

웹 응용 프로그램에서 시간 초과 후 팝업의 나머지 부분을 비활성화하는 핀 팝업을 만들었습니다. 페이지가 새로 고쳐지거나 (Ctrl + R) 새로 고침 버튼을 클릭하면 핀 팝업이 나타나지만 링크가 강조 표시되고 Enter 키를 누르면 팝업이 나타나지 않습니다. 새로 고침 버튼을 클릭하거나 (Ctrl + R) 다른 방법 (링크를 클릭하고 Enter 키를 누릅니다)은 어떻게됩니까? 도와주세요 미리 감사드립니다.브라우저에서 새로 고침 버튼을 클릭하고 링크를 선택하고 Enter 키를 누르는 것의 차이점은 무엇입니까?

+0

이것은 단일 페이지 응용 프로그램입니까? angularjs 또는 reactjs 같은가요? – eltonkamami

+0

방법/언제 팝업을 표시합니까? 양식 POST 후? –

+0

나는 조금 더 깊이 문제를 설명하기를 정말로 좋아한다. 그러나 당신의 표제를보고! pagae를 새로 고침하고 링크를 선택하는 것은 정말로 다른 두 가지 생각입니다! 페이지를 새로 고칠 때 동일한 페이지를 요청하는 브라우저에 새로운 요청을 보냅니다! 반면 링크를 클릭하면 링크의 href가 가리키는 것을 요청합니다. – Jois

답변

2

일반적으로 : 링크를 클릭하면 (또는 탭을 입력하고/스페이스 바를 입력하면) 새 GET이 시작됩니다 (새 브라우저를 열고 주소에 URL 붙여 넣기와 같은).

새로 고침/Ctrl-r 이 (가) 이전 명령 인을 다시 보내는 동안 - 이전 POST 명령 인 경우 다른 POST가 표시됩니다.

새 GET에는 ctrl-f5를 사용할 수 있습니다. 또한


(이 경우에는 특별히 링크) 페이지의 모든 요소는 기본 동작을 중지 할 수 적용된 event handler 가질 수있다.

그래서 yout 링크에 e.preventDefault(); 또는 return false; (예 : <a href='...' onclick='return false;'>link</a>)이 포함 된 이벤트 처리기가 있으면 아무 일도 일어나지 않는 것처럼 보입니다.

포커스가 설정된 링크에서 Enter/Space를 누르면 해당 링크를 클릭하는 것과 동일합니다 (.click() 이벤트 핸들러 실행).

0

새로 고침 또는 Ctr + R을 클릭하면 새로운 서버 요청을 통해 페이지가 다시로드됩니다. 이 경우 서버 요청을하는 것은 주소 표시 줄에 링크를 입력하기 만하면 &을 클릭하는 경우가 아닌지 확인합니다. 두 번째 시나리오에서는 페이지를 다시로드하기 만합니다. 시장은 서버에 갈 수 없지만 브라우저 캐시에서 다시로드 할 수 있습니다.

관련 문제