질문: 왜 사용 하 여 href = "javascript:void (0);"?

출처: 인터넷
작성자: 사용자
다음 의미 <는 > 태그에 href 특성을 추가:





: 링크 선택기를 선택할 수 있습니다





가 (당신은 탭 키를 통해 액세스할 수 있습니다) 초점을 태그




브라우저의 기본 스타일 시트는 < > 태그 href 특성으로
커서: 포인터 효과 (특히 IE의 낮은 버전)에 있다.





바인딩된 onclick 이벤트 &lt;는 &gt; 태그, 특히 그것의 역할은 AJAX 요청, 기본적으로 우리도에 연결 되지 않은 실제 페이지, 일반적으로 또한이 요소 커서와 다른 스타일을 CSS에이 라벨의 기본 동작을 사용 하지 않습니다. Href 특성에 추가 됩니다:





&lt;는 &gt; 키보드 이벤트에 응답 하 고 (화면 판독기 수 있도록 뒤에 읽을 접근성 향상) 포커스를 얻을을 충분히 준다





우아한 다운 그레이드, 네트워크 연결에는 매우 가난, CSS에 로드 되지 때, &lt; &gt; 여전히가지고 손 유형 및 일반 링크 스타일.





&lt;는 &gt; 태그 href 특성을 제공 하 고 시나리오의 실제 페이지에 연결 되지 않습니다:





&lt; a href = "#" &gt;&lt; /a &gt;





&lt; a href = "#nogo" &gt;&lt; /a &gt;





&lt; a href = "# #" &gt;&lt; /a &gt;





&lt; a href = "# # #" &gt;&lt; /a &gt;





&lt; a href = "javascript:void (0);" &gt;&lt; /a &gt;





&lt; a href = "javascript:void (0)" &gt;&lt; /a &gt;





&lt;는 href = "javascript:;" &gt;&lt; /a &gt;





&lt; a href = "javascript:" &gt;&lt; /a &gt;





그들의 경험을 다른 약간 있습니다.





1,이 링크를 클릭, 머리, Window.location.href 증가의 끝으로 이동 하는 페이지는 # (경우 아무 # Window.location.href의 끝), 하지 않는 js를 onclick 이벤트를 캡처하고 기본 이벤트를 방지.





2는 초기 의미가 있다. 그러나, 페이지는 ID nogo 요소, 링크를 클릭 하는 경우 앵커 메커니즘 작동, 페이지가 요소의 위쪽 가장자리에 붙어. 한국 장 Xinsen 쑤의 "URL 앵커 포인트 HTML 위치 기술 메커니즘, 응용 프로그램 및 문제"
참조 더 자세한




3 이상 기본적으로 크롬에는 페이지 머리글, 4는 더 이상 IE11에 페이지 머리에 점프. 일반 클릭 주소에서 증가 하지 않습니다 사용자가 새로운 탭 (예: 중간 키)에서 열기 사용 하 여 있지만 # 바 http://segmentfault.com/q/1010000000339082## #的地址 같은 모양에 점프 테스트 아래를 참조 하십시오.





5 ~ 8 기능 같은, 하지만 자바 의사 프로토콜이 사용 됩니다. 6으로에서 때이 태그를 클릭 하면는 6으로 페이지에 GIF를 일시 중지 되며 onbeforeunload 이벤트 트리거 (자세한 내용은 여기를 참조) 페이지 되었습니다 6으로 이동 하 고 (여기 참조) 모든 후속 요청을 중단. 그래서 &lt; img &gt; src,이 후, i e 6를 대체 하는 경우에이 새로운 요청을 완료할 수 없습니다.





그래서 시나리오 4를 사용 하는 것을 선호.




의미 LZ에 관해서는
가 &lt;는 href = "javascript:void (0)" &gt; 사용, ls 많은 사람들은 충분히 상세한 답변. 이 경우 여전히 검색 엔진 친절 한 지원 내게 필요한 옵션, 방법에에서 할 수 있습니다, "와 아리아 접근성 웹 응용 프로그램 속성."를 참조 하십시오 추가





업데이트, 내가 다음과 같은 테스트:





&lt; p &gt;





&lt; a href = "#" &gt; &lt; /a &gt; #





&lt;/p &gt;





&lt; p &gt;





&lt; a href = "# #" &gt; # # &lt; /a &gt;





&lt;/p &gt;





&lt; p &gt;





&lt; a href = "# # #" &gt; # # # &lt; /a &gt;





&lt;/p &gt;





&lt; p &gt;





&lt; a href = "#" &gt; # # # &lt; /a &gt;





&lt;/p &gt;





&lt; p &gt;





&lt; a href = "# # #" &gt; # # # &lt; /a &gt;





&lt;/p &gt;





&lt; 스크립트 유형 = "텍스트/자바 스크립트" &gt;





var n = 0;





Window.onhashchange 함수 () {
=




경고 (+ n);





}





&lt; / 스크립트 &gt;




IE11에서
클릭 합니다 # # #, # # # #和 #时, 페이지 이상 이동 머리




크롬에서
클릭 # #, # # #, # # # #和 #时, 페이지 이상 머리에 점프.





IE11 시내 모든 &lt; &gt; 지 클릭 크롬 주소 표시줄을 변경 하 고 Hashchange 이벤트를 트리거할 아니지만.





그래서 전에 말했다 "# # #不会造成地址栏的改变" 잘못 이다.





더 대규모 예비 추측을 할 다른 브라우저, 여기의 테스트: # # #的意义在于, 이것은 최소 개수의 문자, 모든 브라우저에서 발생 하지 것입니다 페이지 머리 앵커 포인트를 이동.





다시,이 질문 많은 의미에 대 한 친절 한 논의 촉발 했다.





@fox 동급 생과 가진 동의 "하지 않습니다 남용 버튼을 대체 하는".





에 대 한 문제는 단추를 사용 하 여 필요한 경우 의미 체계는 해결, 멀티 브라우저 스타일은 구 덩이 아빠와 호환...





그냥 순 (이순신) 그것을 언급 하기 전에 답이: 되도록 같은 버튼 크기의 브라우저 &lt; 입력 &gt;&lt; 버튼 &gt; 정의 하는 방법?

연락처

이 페이지의 내용은 인터넷에서 가져온 것이므로 Alibaba Cloud의 공식 의견이 아닙니다.이 페이지에서 언급 된 제품 및 서비스는 Alibaba Cloud와는 관련이 없으므로이 페이지의 내용이 골칫거리 인 경우 저희에게 알려주십시오. 우리는 5 일 근무일 이내에 이메일을 처리 할 것입니다.

커뮤니티에서 표절 사례를 발견한 경우 info-contact@alibabacloud.com 으로 관련 증거를 첨부하여 이메일을 보내주시기 바랍니다. 당사 직원이 영업일 기준 5일 내에 연락 드리도록 하겠습니다.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.