아무도 나에게 말해 주거나, 왜 javascript:void(0)
을 하이퍼 링크로 사용하는 것이 (특히 Internet Explorer 6에서) 해를 끼치는 지 설명 할 수있는 리소스를 가르쳐 줄 수 있습니까?javascript : void (0)가 유해한 것으로 보이는 이유는 무엇입니까?
답변
링크에 javascript:
키워드를 사용하는 것은 좋지 않습니다. 난 단지는 해가 될 수있는 이유에 대해 한 기사 찾기 위해 관리했습니다 :
a href=”javascript:void(0);” — avoid the void
을하지만 일반적인 합의는 자바 스크립트를 지원하지 않고 브라우저를 혼동 수 있기 때문에 당신이 그 중 일부, 그것을 사용하지 않도록 표시 브라우저에서 잘못된 링크로 구문 분석 될 수 있습니다.
대신, 자바 스크립트가 제공하는 기능을 처리하거나 자바 스크립트가 올바르게 작동해야하는 사이트에 관한 메시지를 표시하는 페이지에 대한 링크를 제공해야합니다. 그래서 같은 이벤트에서 동일한 링크, return false;
,에 :
<a href="noscript.html" onclick="doSomething(); return false;">I'm a link</a>
또는 대안 적으로, 당신의 자바 스크립트 코드에 return false;
또는 preventDefault()
및 returnValue
를 사용
element.onclick = function()
{
/*
// return false is better for most situations (see bobince's comment)
if (event.preventDefault)
event.preventDefault();
else
event.returnValue = false;
*/
doSomething();
return false;
}
<a href="javascript:void(0)" />
을 클릭 이벤트 "beforeunload"에서 트리거 개체 "창"× IE (내가 IE10에서 테스트 한),하지만 <a href="#" />
을 클릭하지 않습니다.
IE 11은 링크를 클릭 할 때 더 이상 onbeforeunload를 트리거하지 않습니다. – tsh
- 1. /regex/(string)은 (는) 유해한 것으로 간주됩니까?
- 2. href로`javascript :`대신`javascript : void (0)`를 사용하는 이유는 무엇입니까?
- 3. javascript :; vs javascript : void (0);
- 4. void 포인터를 캐스팅 한 이유는 무엇입니까?
- 5. 프로그램이 자신의 것으로 보이는 모니터에서 차단 될 수있는 원인은 무엇입니까?
- 6. 많은 SQL Server 심각도 10 오류가 실제로 심각한 것으로 보이는 이유는 무엇입니까?
- 7. Squeak 인터페이스가 낡은 것처럼 보이는 이유는 무엇입니까?
- 8. iOS : 배경이 검게 보이는 이유는 무엇입니까?
- 9. Eclipse 개요보기 - Eclipse의 보이는 JavaScript 범주?
- 10. void 포인터를이 콜백에서 컴파일 시간 유형 검사가있는 것으로 대체하려면 어떻게해야합니까?
- 11. href = "", href = "#"및 href = "javascript : void (0)"의 차이점은 무엇입니까?
- 12. IceFaces가 내 요청을 먹는 것처럼 보이는 이유는 무엇입니까?
- 13. ObjectDataSource의 UpdateMethod가 DetailsView에서 보이는 컨트롤의 속성 값만 수신하는 이유는 무엇입니까?
- 14. void (__thiscall MyClass :: *) (void *)를 void (__cdecl *) (void *) 포인터로 변환하는 방법
- 15. 오류가있는 것으로 보이는 경우 오류 메시지가 표시되지 않습니다.
- 16. Qt가 void *에 대해 static_cast가 아닌 reinterpret_cast를 사용하는 이유는 무엇입니까?
- 17. C#에서 암시 적 void Main을 사용하는 이유는 무엇입니까?
- 18. Window.open()의 반환 유형이 void 인 이유는 무엇입니까? 이 같은
- 19. 트롤을 밖으로 내 보냅니다 - IP 금지는 유해한 것으로 간주합니까? 대신 무엇을 사용해야합니까?
- 20. git이 내 지사가 마스터와 다른 것으로 경고하는 이유는 무엇입니까?
- 21. OpenGl glutIdleFunc (void (* func) (void))
- 22. 파일이 iPhone 시뮬레이터에 현지화 된 것처럼 보이는 이유는 무엇입니까?
- 23. SharePoint Navigation에서 메모리가 새 것처럼 보이는 이유는 무엇입니까?
- 24. 내 세션 변수가 ASP.NET에서 비어있는 것처럼 보이는 이유는 무엇입니까?
- 25. Leopard에서 만든 대화 상자가 Tiger에서 끔찍한 것처럼 보이는 이유는 무엇입니까?
- 26. 내 iOS 앱에서 내 텍스트가 그렇게 나빠 보이는 이유는 무엇입니까?
- 27. ANT에서 보이는 대상은 무엇입니까
- 28. Castle Windsor에서 유해한 등록을 확인하려면 어떻게해야합니까?
- 29. 동일한 문자열 두 개가 같은 것으로 테스트되지 않는 이유는 무엇입니까?
- 30. tcl이 예기치 않게 종료 될 것으로 예상하는 이유는 무엇입니까?
앤디에게 감사드립니다. 나는 클릭 수와 관련된 이슈를 알고 있으며 언급 한 블로그를 살펴 보았습니다. 하지만, javascript : void (0)가 해로운 것으로 간주되는 이유에 대한 하나의 유효한 설명조차 찾지 못했습니다 (모든 false를 반환한다고 가정). – Abhi
@Abhi : IE에서 'void (0)'링크로 감싸면 이미지가 사라진다는 블로그 게시물에 나 자신이 직접 경험했다고 말할 수는 없습니다. 이것 이외에도 '무효'가 실제로는 해롭다는 것이 확실하지 않습니다. –
나도 그렇다. 나는 그 문제가 무엇이든간에 '무효'라고 생각하지 않는다. 그러나,'javascript :'링크를 결코 사용하지 않는 것이 좋은 조언입니다. 'onclick = "..."속성보다 JavaScript 할당 이벤트 핸들러를 사용하면 (일반적으로 가장 좋은 접근 방법입니다),'return false'를 사용하는 것이 IE에서 작동하는 것처럼 가장 쉬운 응답입니다 및 기타 브라우저에서 이벤트 객체를 전혀 필요로하지 않습니다. 위의 예는 IE에서'cancelBubble'을하지 않으며'event' 매개 변수가 부족하기 때문에 다른 브라우저에서는 작동하지 않습니다 ('event' global은 IE 전용 임). – bobince