href 속성이없는 앵커 태그는 안전합니까? JavaScript 클릭 이벤트 핸들러 를

href속성 을 포함하지 않고 대신 JavaScript 클릭 이벤트 핸들러 를 사용하여 앵커 태그를 사용하는 것이 좋습니까? 따라서 href완전히 비워 두지 않아도됩니다 ( href="").



답변

HTML5에서는 속성이 a없는 요소를 사용하는 href것이 유효합니다. “자리 표시 자 하이퍼 링크”로 간주됩니다.

예:

<a>previous</a>

w3c 앵커 태그 참조 페이지 ( https://www.w3.org/TR/2016/REC-html51-20161101/textlevel-semantics.html#the-a-element) 에서 “자리 표시 자 하이퍼 링크”를 찾으십시오 .

그리고 그것은 위키에서 여기에 언급되어 있습니다 :
https://www.w3.org/wiki/Elements/a

자리 표시 자 링크는 앵커 요소를 사용하려고하지만 어디에서나 탐색하지 않는 경우를위한 것입니다. 탐색 메뉴 또는 이동 경로에서 현재 페이지를 표시하는 데 유용합니다. (이전의 접근법은 스타일을 지정하기 위해 “active”또는 “current”라는 클래스가있는 span 태그 또는 앵커 태그를 사용하고 탐색을 취소하기 위해 JavaScript를 사용하는 것이 었습니다.)

자리 표시 자 링크는 런타임시 JavaScript를 통해 링크의 대상을 동적으로 설정하려는 경우에도 유용합니다. href 속성의 값을 설정하면 앵커 태그를 클릭 할 수있게됩니다.

또한보십시오:


답변

괜찮지 만 동시에 일부 브라우저가 느려질 수 있습니다.

http://webdesignfan.com/yslow-tutorial-part-2-of-3-reducing-server-calls/

내 조언은 <a href=”#”> </a> 사용입니다

JQuery를 사용하는 경우 다음도 사용하십시오.

.click(function(event){
    event.preventDefault();
    // Click code here...
});

답변

짧은 대답 : 아니요.

긴 대답 :

먼저 href 속성이 없으면 링크가 아닙니다. 링크가 아닌 경우 HTML 5 기능을 사용하지 않는 한 키보드 (또는 호흡 스위치 또는 포인터 기반 입력 장치가 아닌 다양한 기타 입력 장치)에 액세스 할 수 없습니다tabindex 없습니다 (일반적으로 지원되지 않는 ). 컨트롤에 키보드 액세스 권한이없는 것이 매우 드 rare니다.

둘째. JavaScript가 실행되지 않는 경우 (서버에서로드 속도가 느리거나 인터넷 연결이 끊어 졌기 때문에 (예 : 움직이는 기차의 모바일 신호), JS가 꺼져있는 등) 대안이 있어야합니다.

거슬리지 않는 JS점진적인 향상 을 활용하십시오 .


답변

이전 버전과의 호환성을 위해 href를 사용해야하는 경우

<a href="javascript:void(0)">link</a>

속성을 사용하지 않으려는 경우 # 대신


답변

태그는 href 속성없이 사용하는 것이 좋습니다. 여기의 많은 답변과 달리 실제로 href가 없을 때 앵커를 만드는 표준 이유가 있습니다. 의미 상 “a”는 앵커 또는 링크를 의미합니다. 그 의미를 따르는 것을 위해 그것을 사용하면 괜찮습니다.

href가없는 태그의 표준 사용은 명명 된 링크를 작성하는 것입니다. 이렇게하면 name = blah로 앵커를 사용할 수 있으며 나중에 href = # blah로 앵커를 만들어 현재 페이지의 명명 된 섹션에 연결할 수 있습니다. 그러나 동일한 방식으로 ID를 사용할 수도 있기 때문에이 기능은 더 이상 사용되지 않습니다. 예를 들어 id = header와 함께 헤더 태그를 사용할 수 있으며 나중에 href = # header를 가리키는 앵커를 가질 수 있습니다.

그러나 요점은 name 속성 사용을 제안하지 않는 것입니다. href가 필요하지 않은 이유를 하나만 제공하므로 왜 필요하지 않은지 추론하십시오.


답변

<a>href가없는 접근성 관점 에서는 탭을 사용할 수 없으며 모든 링크는 탭을 사용할 수 있어야합니다. href가없는 경우 tabindex = ‘0 “을 추가하십시오.


답변

<a>멀티 레벨 메뉴를 사용하는 경우 “HREF”없는 태그는 편리 할 수 있으며 다음 단계를 확장 할 필요가 있지만 메뉴 레이블은 활성 링크되고 싶지 않아. 그런 식으로 사용하는 데 아무런 문제가 없었습니다.