JavaScript에서 target =“_ blank”를 시뮬레이션하는 방법
사용자가 링크를 클릭하면 데이터베이스의 필드를 업데이트 한 다음 요청 된 링크를 새 창에서 열어야합니다. 업데이트는 문제가되지 않지만 다른 하이퍼 링크를 클릭하지 않고도 새 창을 여는 방법을 모르겠습니다.
<body onLoad="document.getElementById('redirect').click">
<a href="http://www.mydomain.com?ReportID=1" id="redirect" target="_blank">Report</a>
</body>
<script>
window.open('http://www.example.com?ReportID=1', '_blank');
</script>
두 번째 매개 변수는 선택 사항이며 대상 창의 이름입니다.
이것은 도움이 될 수 있습니다
var link = document.createElementNS("http://www.w3.org/1999/xhtml", "a");
link.href = 'http://www.google.com';
link.target = '_blank';
var event = new MouseEvent('click', {
'view': window,
'bubbles': false,
'cancelable': true
});
link.dispatchEvent(event);
나는 이것이 완료되고 정리 된 거래라는 것을 알고 있지만 여기 내 앱의 문제를 해결하기 위해 사용하고있는 것이 있습니다.
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의 링크는이 토론으로 돌아갑니다. 새 탭이 필요 없습니다.)
단일 링크에 대한 경우 다음 코드를 개인적으로 선호합니다. 그렇지 않으면 비슷한 코드로 함수를 만드는 것이 가장 좋습니다.
onclick="this.target='_blank';"
나는 그것을 W3C의 XHTML 엄격한 테스트를 우회하기 위해 사용하기 시작했다.
이것이 jQuery로 수행하는 방법입니다. 새 창에서 열려는 각 링크에 대한 클래스가 있습니다.
$(function(){
$(".external").click(function(e) {
e.preventDefault();
window.open(this.href);
});
});
a 태그에서 href를 추출 할 수 있습니다.
window.open(document.getElementById('redirect').href);
이렇게하면 모든 페이지 링크 를 여는 데 도움이 될 수 있습니다 .
$(".myClass").each(
function(i,e){
window.open(e, '_blank');
}
);
It will open every <a href="" class="myClass"></a>
link items to another tab like you would had clicked each one.
You only need to paste it to browser console. jQuery framework required
참고URL : https://stackoverflow.com/questions/1574008/how-to-simulate-target-blank-in-javascript
'IT박스' 카테고리의 다른 글
리눅스에서 VNC 세션의 해상도 변경하기 (0) | 2020.06.16 |
---|---|
MySQL 데이터 디렉토리를 변경하는 방법? (0) | 2020.06.16 |
오래된 Git 커밋을 수정하는 방법? (0) | 2020.06.16 |
파이썬에서 no-op을 수행하는 표준 방법은 무엇입니까? (0) | 2020.06.15 |
Windows 핸들이란 무엇입니까? (0) | 2020.06.15 |