target =“_ blank”대 target =“_ new”


512

차이 무엇 <a target="_new"><a target="_blank">어느 난 그냥 새 탭 / 창에서 링크를 열려면 내가 사용해야은?


73
현재 답변의 요약 : _new특별한 의미가 없습니다. 당신도 쓸 수 _white_little_lamb있습니다.
Álvaro González

10
@ x3ro " _new"는 특별한 의미가 없다고 말하는 것이 어떻게 잘못 될까요?
Álvaro González

3
@ ÁlvaroG.Vicario "당신은 대신 쓸 수 있습니다 ..." 그러나 그것에 대해 생각, 나는 "특별한 의미가 없다" "명시 적으로 권장되지 않습니다"와 같은 것이 아니라 그 날이 하찮은 일에 속 태우고 될 수 있다고 주장 것)
fresskoma

5
나는 target="_blank"없이 사용 rel="noopener"하는 것이 잠재적 인 보안 취약점 이라는 것을 모든 사람들에게 상기시키고 싶습니다 . rel="noopener"자세한 내용을 검색하십시오 .
Flimm

답변:


651

"_blank"사용

HTML5 사양 에 따르면 :

유효한 브라우징 컨텍스트 이름 은 U + 005F LOW LINE 문자로 시작하지 않는 하나 이상의 문자 모든 문자열입니다. 밑줄로 시작하는 이름은 특수 키워드 용으로 예약되어 있습니다.

유효한 브라우징 컨텍스트 이름 또는 키워드 중 하나 유효한 브라우징 컨텍스트 이름 문자열 또는 그 중 하나에 대한 아스키 대소 문자를 구분 일치 : _blank, _self, _parent, 또는 _top. "- 소스

이는 _newHTML5 와 같은 키워드가 없으며 HTML4 (및 결과적으로 XHTML)에도 키워드가 없음을 의미 합니다 . 즉, 대상 속성의 값으로이 값을 사용하면 일관된 동작이 없습니다.

보안 권장 사항

Daniel과 Michael이 주석에서 지적했듯이 _blank신뢰할 수없는 웹 사이트를 가리키는 대상을 사용할 때 또한 설정해야합니다 rel="noopener". 이렇게하면 오프닝 사이트가 JavaScript를 통해 오프너를 망칠 수 없습니다. 자세한 내용은 이 게시물 을 참조하십시오.


7
스펙에서 굵은 글씨를 생략하면 인용문이 혼란스럽게 들립니다. 나는 그것을 읽어 "A valid browsing context name또는 키워드 중 하나입니다 어떤 문자열 valid browsing context name이나 ...."
알렉스 웃지

6
@lyoshenka, @ x3ro : 나는 이전 단락을 인용문에 추가하기 위해 자유를 얻었다. 혼란을 없애야합니다.
mercator

5
@aesede : 사양을 읽으십시오. 그들은는 없습니다 "my_custom_name"이 밑줄로 시작되지 않을 수 있기 때문에, 유효합니다. 따라서 "new"는 괜찮지 만 "_new"는 그렇지 않습니다!
fresskoma

7
보안 상 이것은 중요한 읽기 mathiasbynens.github.io/rel-noopener입니다
Daniel F

6
사람들은 또한 추가해야 함을 추가하는 것을 고려하십시오 rel="noopener noreferrer"인해 자바 스크립트 공격 취약점target="_blank"
마이클

126

를 사용 target="_blank"하면 사용자가 링크를 클릭 할 때 브라우저가 새 브라우저 탭이나 창을 만들도록 지시합니다.

사용 target="_new"은 사양에 따라 기술적으로 유효하지 않지만 모든 브라우저가 동일한 방식으로 작동한다는 것을 알고 있습니다.

  • 컨텍스트 이름이 "_new"인 탭 또는 창을 검색합니다.
  • "_new"탭 / 창이 발견되면 URL이로드됩니다
  • 찾을 수없는 경우 컨텍스트 이름이 "_new"인 새 탭 / 창이 생성되고 URL이로드됩니다.

참고 target="_new"는와 정확히 동일하게 작동 target="new"하며 후자는 유효한 HTML이고 전자는 유효하지 않은 HTML입니다.

이것에 약간의 혼란을 추가하면 HTML4에서는 target속성이 더 이상 사용되지 않습니다. HTML5에서는이 결정이 취소되었으며 이는 다시 한 번 사양의 공식 부분입니다. 모든 브라우저 target는 사용중인 HTML 버전에 관계없이 지원 하지만, 일부 유효성 검사기는 doctype이 HTML4 인 경우 사용이 더 이상 사용되지 않는 것으로 표시합니다.


4
따라서 기본적으로와 두 개 이상의 링크가 target="_new"있으면 둘 다 동일한 탭에서 열리고 하나는 다른 것을 덮어 씁니까?
art-solopov

4
@ art-solopov 내가 아는 한, 그것은 모든 브라우저에서 일어날 것입니다. 그러나 "_new"는 대상에 대해 잘못된 값이므로 수행하지 마십시오.
Abhi Beckert

25

TL; DR
사용 _blank

대상 속성은 링크 된 문서를 열 위치를 지정합니다.

USAGE: target="xyz"  [don't forget double quotes]

_blank  Opens the linked document in a new window or tab
_self   Opens the linked document in the same frame as it was clicked (this is default)
_parent     Opens the linked document in the parent frame
_top    Opens the linked document in the full body of the window 
framename   Opens the linked document in a named frame

SINCE "_new"는 "framename"아래의 IT IT가 아니므로 사용자가 해당 하이퍼 링크를 다시 클릭하면 새 탭이 열리지 않고 기존 탭이 업데이트됩니다. _blank에서 사용자가 두 번 클릭하면 2 개의 새 탭이 열립니다.



14

이것은 이전에 요청되었지만 다음과 같습니다.

"target ="_ new "를 지정하는 모든 링크는 이름별로 해당 창을 찾아서 엽니 다.

target = "_ blank를 사용하면 현재 창 위에 매번 새로운 창이 생성됩니다."

여기에서 : http://thedesignspace.net/MT2archives/000316.html


12

target="_blank" 대부분의 브라우저에서 새 탭을 엽니 다.


12

target = whatever그 이름으로 프레임 / 창을 찾는 것이 나의 이해입니다 . 찾을 수 없으면 해당 이름의 새 창이 열립니다. 인 경우를 제외하고 whatever == "_new"사용한 것처럼 나타납니다 _blank.....

예약 된 대상 이름 중 하나를 사용하면 "찾는"단계가 무시됩니다. 따라서, target = "_blank"12 개의 링크에서는 12 개의 빈 창이 target = whatever열리지 만 12 개의 링크에서는 하나의 창만 열립니다. target = "_new"링크가 12 개 이상이면 동작이 일정하지 않을 수 있습니다. 여러 브라우저에서 시도하지 않았지만 하나의 창만 열어야합니다.

적어도 이것이 규칙을 해석하는 방법입니다.


9

주의-항상 "따옴표"를 포함해야합니다. 적어도 Chrome에서는 target=_blank따옴표가 없습니다 (따옴표 제외)는 아닙니다 target="_blank".

후자는 새 탭 / 창에서 각 링크를 엽니 다. 전자 (누락 된 따옴표)는 하나의 새 탭 / 창에서 클릭 한 첫 번째 링크를 연 다음 클릭 한 각 후속 링크 (없는 따옴표로 이름이 지정된)로 동일한 탭 / 창을 덮어 씁니다.


아주 좋은 지적입니다. _blank를 따옴표로 묶지 않았을 때이 문제가 발생했습니다. 새로 만든 "빈"탭에서 클릭 한 링크가 새 탭을 여는 대신 해당 탭의 내용을 덮어 쓰고있었습니다. _blank를 따옴표로 묶으면 크롬이 매번 새 탭을 열도록합니다.
Steve Scherer 2016 년

또한 "_BLANK"가 아닌 "_blank"를 사용하십시오. Chrome은 실제로 사례에 대해 까다 롭고 "_BLANK"를 여러 번 사용하여 새 탭을 열지 않습니다.
Steve Scherer 2016 년

5
  • 목표 값으로 _blank는 매번 새 창을 생성합니다.
  • _new는 하나의 새 창만 생성합니다.

또한 목표 값 _new로 클릭 한 모든 링크는 이전에 생성 된 창에로드 된 페이지를 대체합니다.

여기를 클릭 하면 _blank 또는 _new사용 하여 직접 사용해 볼 수 있습니다.


_new설명 된대로 사용할 브라우저를 나열 할 수 있습니까 ?
Dima Tisnek

@qarma 그 동작은 내가 아는 모든 브라우저에서 설명한 것처럼 _new, 마법의 핵심 단어는 아니며 단지 이름 일뿐입니다. 해당 이름의 창이 존재하면 재사용하고 그렇지 않으면 열 것입니다. 해당 창에 대해 여러 개의 링크를 클릭하면 여러 개의 새 페이지를 열지 않고 명명 된 창에서 다른 페이지가 열립니다.
scragar

이 사양은 실제로 ignore밑줄로 시작하지만 키워드가 아닌 대상 을 브라우저에 제안합니다 . 유효하지 않은 대상 이름을 "무시"할 때 브라우저가 수행해야 할 작업에 대한 제안은 없습니다. 가능성은 다음과 같습니다. (1) "_blank"로 취급 (2) 창 이름으로 취급 (잘못된 밑줄이없는 것처럼) (3) 명시 적으로 빈 창 이름으로 취급 (4) 그곳에서 취급 대상 속성이 없습니다. -모든 브라우저가 해석을 선택할 수 있습니다.
Jesse Chisholm 2016 년

0

링크의 대상 속성은 브라우저가 새 브라우저 창에서 대상 페이지를 열도록합니다. _blank대상 값으로 사용하면 매번 새 창이 생성되고 사용 _new하면 새 창 하나만 생성되고 대상 값으로 클릭 한 모든 링크 _new는 이전에 생성 된 창에로드 된 페이지를 대체합니다


0

새 탭 / 창에서 링크를 열려면을 사용 <a target="_blank">합니다.

_blank= 타겟팅 된 브라우징 컨텍스트 : 새로운 브라우징 : 브라우징 설정에 따라 탭 또는 창

_new= 유효하지 않습니다. 요소의 대상 속성에 대해 HTML5에 이러한 값이 없습니다.

요소의 모든 값을 가진 대상 속성 : 비디오 데모


-1

_New는 Iframed 페이지에서 작업 할 때 유용합니다. target = "_ blank"는 트릭을 수행하지 않고 동일한 iframe에서 페이지를 엽니 다. target new는 Iframe 페이지에 가장 적합한 솔루션입니다. 내 센트 만

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