태그 보관물: javascript

javascript

HTML5에서 target =“_ blank”를 사용해도 괜찮습니까? 찾을 수 없습니다. 계속 사용하는

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

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

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



답변

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


답변

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

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

가자 결코.


답변

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

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

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

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

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

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

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

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


답변

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

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

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


답변

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

자바 스크립트 코드 :

window.opener.location.replace(malicious URL)

예방:

rel="nofollow noopener noreferrer"

답변

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

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

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

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

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

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


답변