나는 이것이 완료되고 정리 된 거래라는 것을 알고 있지만 여기 내 앱의 문제를 해결하기 위해 사용하고있는 것이 있습니다.
if (!e.target.hasAttribute("target")) {
e.preventDefault();
e.target.setAttribute("target", "_blank");
e.target.click();
return;
}
기본적으로 여기서 일어나는 일은 링크에 target=_blank속성 이 있는지 확인하는 것입니다. 그렇지 않으면 링크 트리거링을 중지하고 새 창에서 열도록 설정 한 다음 프로그래밍 방식으로 클릭합니다.
한 단계 더 나아가서 다음을 시도하여 원래 클릭 중지를 건너 뛸 수 있습니다 (그리고 코드를 훨씬 간단하게 만들 수 있습니다).
if (!e.target.hasAttribute("target")) {
e.target.setAttribute("target", "_blank");
}
jQuery를 사용하여 속성 크로스 브라우저 추가 구현을 추상화하는 경우 다음 대신에 이것을 사용해야합니다 e.target.setAttribute("target", "_blank").
jQuery(event.target).attr("target", "_blank")
정확한 사용 사례에 맞게 재 작업해야 할 수도 있지만 여기에 내 가려움증이 생겼습니다.
여기 당신이 엉망으로 만드는 데모 가 있습니다.
(jsfiddle의 링크는이 토론으로 돌아갑니다. 새 탭이 필요 없습니다.)
target="_top"새 창에서 열리지target="_blank"않습니다.