2011-09-20 5 views
3

Google은 target = "_ blank"를 정의하지 않고 새 창/탭에서 외부 링크를 여는 방법을 궁금합니다.Google은 타겟 속성이없는 새 창에서 어떻게 링크를 여나요?

예를 들어 google plus에서 모든 외부 링크가 새 창에서 열립니다. 자바 스크립트 부두라고 생각하지만 .js 코드는 난독 화되어 있으므로 실제로 들여다 볼 수 없습니다.

편집 : 오, 후속 질문 : 왜?

답변

2

프레임 워크를 사용하면이 작업을 쉽게 수행 할 수 있습니다. JavaScript가 rel="external"이라고 표시된 링크를 찾거나 외부 링크로 표시하는 다른 식별자를 찾고 동적으로 target="blank"을 추가하십시오. 다음은 프로토 타입을 사용하는 예입니다.

$$('a[rel="external"]').each(function(a) { 
    a.setAttribute('target', '_blank'); 
}; 
+0

설명을위한 thx. 나는 왜 그들이 이것을하는지 궁금해. 대상 빈 특성은 ​​더 이상 사용되지 않습니다. – Michele

+0

그러나 그것은 수업을 미리 삽입해야합니다. 페이지에 * 많은 * 링크가있는 경우가 아니라면 ** 모든 ** 링크를 반복하고, URL을 검사하고, 수정해서는 안되는 것을 필터링하는 것이 가장 쉬운 방법입니다. 또한 CSS3의 부정 및 속성 선택자 (예 :'a.not ([href^= "http://example.com/"])를 사용하여 특정 도메인과 관련이없는 모든 링크를 얻을 수도 있지만 자바 스크립트에서 https 및 하위 도메인을 다루는 것이 더 쉽습니다. ps., 당신은'_blank'를 원한다. 그렇지 않으면 모든 링크를 같은 창으로 밀어 넣을 것이다. – Joe

+0

@Joe 그것을 지적 해 주셔서 감사합니다. 이제 수정되었습니다. 당신의 솔루션은 내 것만큼이나 실행 가능합니다. 그러나 코드의 요점은 그것이 이론적으로 어떻게 작동 하는지를 보여주는 것이 었습니다. 그것을하는 가장 좋은 방법은 전혀 다른 질문 일 것입니다. –

0

앵커 링크 이벤트가 true를 반환하기 전에 javascript로 대상 속성을 추가하는 것은 당연한 것입니다.

0

자바 스크립트입니다. 당신은 말할 수 있습니다 :

window.open('http://example.org', '_blank').focus(); 

그러나, 을하지 마십시오. 새 창에서 링크를 여는 것은 거의 항상 잘못된 행동입니다. 진지하게, 이것의 좋은 용도는 거의 사라지지 않습니다. 사용자가 새 창에서 열린 링크를 원할 경우, 그 자체로도 링크를 수행 할 수 있습니다.

야콥 닐슨은 telling people this twelve years ago이었다. Othershavetakenupthecudgels. W3C는 HTML 4에서 target 속성을 제거 했으므로 나쁜 생각이었습니다. 솔직히이 사용법이 어떻게 지속되는지 이해하지 못합니다. 웹 사이트에서이 작업을 수행 할 때 놀라 울 정도로 짜증나지 않습니까? 왜 이것을 다른 사람에게하는 웹 사이트를 쓰고 싶습니까?

고객님의 질문에 대한 답변입니다. Google은 왜이 작업을 결정 했습니까? 나는 그것에 대한 대답이 없으며, 가장 크고, 가장 똑똑한 웹 회사 중 하나가 어떻게 그런 실수를 저지를 수 있었는지에 대해 완전히 당황 스럽다. 그러나 많은 구글 플러스 인터페이스는 매우 열악한 유용성을 가지고있다. 그 뒤에 흥미로운 이야기가 의심됩니다. 프로젝트의 자원이 부족했기 때문에 GWT와 같은 신속한 개발 프레임 워크 위에 값 싸게 구축 되었습니까? 웹 아키텍처를위한 사각 지대의 고독한 늑대가 여가 시간 프로젝트로 만들었습니까? 기술을 제대로 얻는 것에 신경 쓰지 않는 전략적 승자에 의해 주도 되었습니까? 신비.

+0

새 창 - 짜증나. 새 탭 - 성가신 일이 아닙니다. 사실, 나를 위해 그것은 더 귀찮을 때 * 내가 * 새 탭에서 열려면 사이트가 자바 스크립트 링크 때문에 나를 못하게됩니다. – UncleZeiv

+0

나는 너와 함께있어. Idon't는 그것을 사용하고 싶어한다, iam는 단지 왜 그 hacky 길에서 그것을 사용하는지 궁금하게 생각한다.Iam은 더 이상 사용되지 않으며이 속성을 사용하는 것은 항상 나쁜 결정이라고 알고 있습니다. 이 주제에 대해서만 궁금합니다. – Michele

+0

@UncleZeiv : JS 링크가 새 탭 (또는 창)을 열지 못하게하는 것이 맞습니다. 그것들은 실제로 새로운 탭이나 창을 강요하는 것보다 범죄가 더 심합니다. 그러나, 나는 아직도 성가신 새 탭을 강제 찾을; 새로운 창문을 강요하는 것보다 덜 짜증나지만, 여전히 성가시다. 또한 짜증나는 것은 열 때 초점을 잡는 페이지로 효과적인 탭 브라우징을 방해합니다. 결론은 링크가 링크 여야한다는 것이며, 원하는 경우 새 창이나 탭에서 열어야한다는 것입니다. –

관련 문제