HTML5에서 target =“_ blank”를 사용해도 괜찮습니까?


165

HTML5에서 더 이상 target="_blank"HTML5에서 사용하기 에 좋지 않은 곳을 읽었 지만 지금은 찾을 수 없습니다.

계속 사용하는 것이 괜찮 target="_blank"습니까?

나는 그것이 일반적으로 나쁜 생각으로 여겨지지만 PDF와 같은 것을 위해 새 창을 여는 가장 쉬운 방법이며 JavaScript에 의존 할 필요가 없습니다.


5
일반적으로 귀하의 사이트에서 외부 사이트를 열려면 새 창을 여는 것이 좋습니다 (오늘날 대부분의 브라우저에서 새로운 탭 일 것입니다).
hobbes3

7
@ hobbes3, 내 탐색과 역사를 엉망으로 만들지 마십시오. 나는 브라우징하는 사람이고, 링크가 새 (중간 클릭) 또는 동일한 (왼쪽 클릭) 탭에서 열릴 지 결정하는 사람입니다. 웹 사이트를 방문하여 새 탭에서 모든 링크를 여는 "올바른 모범 사례"를 따르도록하면 즉시 기꺼이 떠날 것입니다.
Albireo

9
@Albireo, 그것은 단지 내 의견이며 일부 인기있는 웹 서비스도 동일한 아이디어를 통합합니다. 예를 들어 Gmail 메일에서 링크를 클릭하면 기본적으로 새 창이 열립니다.
hobbes3

12
@Albireo는 사용자가 항상 당신처럼 고급스럽고 기술에 정통하다고 가정합니다.
Mike Campbell

3
targetet al.에 이유가 있습니다 . 있다. 때때로 그들은 필요합니다. 예를 들어 iframe이 새 탭보다 바람직하지 않은 상태 저장 JS가 포함 된 동적으로 생성 된 페이지 (예 : OP 상태로 PDF보기) 또는 은행과 같은 보안 사이트가 외부 링크로 사용자를 보내지 만 컨텐츠 만료로 인해 뒤로 버튼을 사용할 수없는 경우. 모든 것과 마찬가지로이 HTML 속성은 사용하기에 "나쁜 생각"이 아니지만 모든 프로그래밍의 모든 라이브러리, 클래스, 함수 및 속성과 마찬가지로 생각하고주의해서 사용해야합니다.
s.co.tt

답변:


159

target="_blank"여전히 괜찮은 것 같습니다 . 최신 HTML5 초안 에 브라우징 컨텍스트 키워드로 표시됩니다 .


54
target="_blank"사용자가 링크를 클릭 할 때마다 새 창이 열립니다 . 이것이 실제로 원하는 것이 아니라면 (그리고 드물게) target="somethingUnique"사용자가 링크를 여러 번 클릭하더라도 하나의 창만 열리도록 사용을 고려 하십시오. 훨씬 더 좋은 UX를 만듭니다.
BanksySan

4
@ BanksySan : target="_blank"좋은 것으로 생각하는 한 가지 예 는 버튼을 공유 하는 것입니다 .
Martin Thoma

긴 기사를 읽는 중이고 다른 사이트 (또는 동일한 사이트)의 관련 정보에 대한 참조가있는 경우 나는 종종 원래 기사에서 내 자리를 잃지 않고 두 사람 사이를왔다 갔다하고 싶어합니다. target = "_ blank"가 이것에 완벽합니다. 페이지를 떠나고 각 페이지를 번갈아 가며 다시로드해야하는 경우가 종종 있습니다 (종종 어느 페이지에서든 내 장소를 잃는 경우). 예, 링크를 마우스 오른쪽 버튼으로 클릭하여 새 탭에서 열 수 있다는 것을 알고 있지만 집중이 어려워서 원하지 않습니다. 대부분의 웹 사용자가 방법을 모른다고 생각합니다.
밥 레이

대상 속성에는 많은 이점이 있습니다. 나는 그것을 disq하지 않을 것입니다. 팝업 광고주는 그 목적을 파괴했지만 오늘날 많은 서비스가 브라우징 경험을 제외하고 실행되고 있기 때문에 많은 사람들이 현재 기사 나 탭을 남기고 싶지는 않지만 여전히 무거운 다운로드 PDF 또는 비디오와 상호 작용합니다. _blank를 사용하면 동일한 세션 / 사이트에서 많은 링크를 제공하는 경우 사용자가 빈 탭을 채우도록해야합니다. 현재 채워진 컨텐츠를 무시하지 마십시오. 고유 한 이름은 90 곡 .... 만세 대상, 비바 라 _blank ...와 오디오 목록에 지저분한된다
조나스 Lundman

91

사용하는 것이 좋습니다 target="_blank"; 새 창을 대상으로 지정하면 대부분의 브라우저에서 팝업 경고가 항상 표시되므로 XHTML에서는이를 해결했습니다. XHTML은 항상 validate에서 target 속성에 오류를 표시합니다.

HTML 5는 여전히 사용하기 때문에 다시 가져 왔습니다. 그것은 우리의 친구이며 우리는 놓을 수 없습니다.

가자 결코.


당신이 주장하는 것은 HTML 엄격에만 유효합니다.
qwertzman

XHTML 및 HTML 용.
MEMark

15

(가) 비록 target="_blank"입니다 HTML5에 허용 , 나는 개인적으로 (심지어 새 창에서 PDF 파일을 열기위한)를 사용하는 것이 결코 시도하지.

HTML은 의미와 내용을 정의해야합니다 . , 당신 자신에게 물어보세요 "는 것이다 의미a경우 생성 요소의 변화 target특성을 제거?" 그렇지 않은 경우 코드가 HTML에 포함되지 않아야합니다. (실제로 나는 W3C가 그것을 유지한다는 것에 놀랐다. 나는 그들이 정말로 놓을 수 없다고 생각한다.)

브라우저 동작 , 특히 사용자와의 대화식 동작 은 JavaScript와 같은 클라이언트 측 스크립팅 언어로 구현해야합니다. 브라우저가 특정 방식으로 (예 : 새 창 열기) 동작하도록하려면 JS를 사용해야합니다. 그러나 언급했듯이이 동작을 수행하려면 브라우저가 JS에 의존해야합니다. (사이트 정상적으로 저하, 또는 점진적으로 강화합니다, 경우 비록 또는 무엇이든은 , 그것은 여전히 괜찮을 것 같네요. JS와 사용자 비활성화 미스 많이하지를 않습니다.)

그러나이 중 어느 것도 정답이 아닙니다. 어딘가에최종 사용자가 링크를 여는 방법을 결정해야한다는 의견이 있습니다 . 이 예제를 보자.

당신은 Wikipedia를 서핑하고, 토끼 구멍에 점점 더 깊이 들어가고 있습니다. 당신은 당신의 독서에서 링크를 발견했습니다.

돌아 오기 전에 링크 된 페이지를 정말 빨리 훑어보고 싶다고 가정 해 봅시다. 새 탭에서 열어서 완료되면 '뒤로'버튼을 누르고 페이지 다시로드를 기다리는 데 시간이 너무 오래 걸리므로 닫을 수 있습니다. 또는 흥미롭게 보이며 나중에 저장하려면 어떻게해야합니까? 대신 새 백그라운드 탭에서 열어서 현재 페이지를 계속 읽으십시오. 또는이 페이지를 읽은 것으로 판단되면 현재 탭의 링크를 따라 가면됩니다.

요점은, 자신 만의 워크 플로가 있고 브라우저가 그에 따라 작동하기를 원한다는 것입니다. 그것이 당신을 위해 이런 종류의 결정을 내렸다면 당신은 꽤 실망 할 것입니다.

그러나 웹 개발자는 링크의 위치, 참조하는 소스의 유형 및 / 또는 형식 및 작업을 명확하게 밝혀야합니다. 툴팁은 친구가 될 수 있습니다 (태블릿이나 휴대 전화를 사용하지 않는 한, 모바일 사이트에서이를 지정하십시오). 우리는 우리가 기대하지 않았던 곳으로 가져 가거나 우리가 의도하지 않은 일을하게되는 것이 얼마나 짜증나는지 알고 있습니다.


모든 사람이 (무의식적으로 쉽게) 모든 링크에 대해 하나님이 부여한 제어 권한을 매우 쉽게 행사할 수있는 사용자 위젯을 설계 할만큼 영리한 사람이라면 브라우저에 추가해야하며 모든 <a> 태그는 그것을 제공하십시오.
Mark Goldfain

이 대답은 논리적으로 건축 적으로 가장 정확하다고 생각합니다. 이상적인 세계에서 저자는 청크의 적절한 의미 식별에 대해 더 관심을 기울여야하고 청크의 동작을 미리 결정하는 것에 대해서는 덜 신경을 써야합니다. 새롭게 등장하는 적응 형 컨텐츠 유니버스에서, 창 동작은 요청시 어떤 반응 형 테마 또는 사용자 선호도가 적용되는지에 따라 달라질 수 있습니다. 발신 시맨틱 "사물"은 변환 (DOM 또는 정규식, 서버 또는 브라우저)에 의해 필요한 경우에만 수정됩니다. 이러한 방식으로 창 동작은 CMS의 작성자가 아닌 사용자에게 달려 있습니다.
Don Day

12

PDF와 같은 것을 위해 새 창을 여는 가장 쉬운 방법입니다

Windows 이외의 사용자를 성가 시게하는 가장 쉬운 방법이기도합니다. PDF는 다른 플랫폼의 브라우저에서 제대로 열립니다. 새 창을 열면 탐색 기록이 지저분 해지고 스마트 폰과 같은 작은 플랫폼에서는 문제가 복잡해집니다.

이전 버전의 Windows가 손상 되었기 때문에 PDF와 같은 새 창을 열지 마십시오.


11
사람들에게 무언가를 쓰지 말라고 할 때 무엇이 ​​도움이되는지 아십니까? 무엇을 표시 하기 위해 사용하여 HTML5 다운로드 속성 : <a download="[file 이름 here]" href="file.ext"> 등 </a>를 .
John

5

대부분의 웹 개발자 target="_blank"는 새 탭에서 링크를 여는 데만 사용 합니다. target="_blank"새 탭에서 링크를 여는 데만 사용 하는 경우 공격자에게 취약합니다. 새 탭 ( target="_blank") 에서 링크 를 열면 새 탭에서 열리는 페이지가 초기 탭에 액세스하고 window.opener속성을 사용하여 위치를 변경할 수 있습니다 .

자바 스크립트 코드 :

window.opener.location.replace(malicious URL)

예방:

rel="nofollow noopener noreferrer"

nofollow가 보안과 관련이 있는지 확실하지 않습니다. 검색 엔진 봇을위한 것입니다.
Darryl Hein

4

HTML5에서는 여전히 target을 사용할 수 있지만 바람직하지 않습니다. PDF 파일에 링크하려면 대상 속성 대신 다운로드 속성을 사용하십시오 .

예를 들면 다음과 같습니다.

<a href="files/invoice.pdf" download>Invoice</a>

원래 파일 이름이 고유 한 파일 스토리지 용으로 코딩 된 경우 다운로드 속성에 값을 지정하여 사용자에게 친숙한 다운로드 이름을 지정할 수 있습니다.

<a href="files/j24oHPqJiUR2ftK0oeNH.pdf" download="invoice.pdf">Invoice</a>

대부분의 최신 브라우저는이 기능을 지원하지만 일부는 지원하지 않을 수 있습니다. 자세한 내용은 caniuse.com 을 참조하십시오 .



0

jquery를 사용하여 다음과 같은 방법으로 새 ​​창에서 열 수 있습니다.

<input type="button" id="idboton" value="google" name="boton" /> 

<script type="text/javascript">
    $('#idboton').click(function(){
        window.open('https://www.google.com.co');
    });

</script>

target = "_ blank"를 사용하여 버튼 주위에 양식을 추가해보십시오. 그것은 더 쉬울 것 같고 JS가 필요하지 않습니다.
Darryl Hein

-1

대상 속성이 <link>요소가 아닌 <a>더 이상 사용되지 않는다고 생각하므로 더 이상 사용하지 않아야한다고 들었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.