HTML 4.0 Strict 및 XHTML 1.0 STRICT에서는 <a> 태그에 target 속성이 허용되지 않습니다. 이는 웹 디자이너에게 실망스러운 일입니다. 과도기 사양에서는 여전히 사용이 허용됩니다. 하지만 특정 방법을 통해 이 문제를 해결할 수 있습니다.
HTML4.0 사양에서는 target 속성이 제거되었지만 rel이라는 또 다른 속성이 추가되었습니다. 이 속성은 링크가 포함된 문서와 링크된 문서 간의 관계를 지정하는 데 사용됩니다. 해당 속성 값(예: 다음, 이전, 장, 섹션)은 사양에 정의됩니다. 이러한 속성의 대부분은 큰 문서의 작은 부분 간의 관계를 정의하는 데 사용됩니다. 실제로 이 사양을 통해 개발자는 특정 응용 프로그램에 대해 비표준 속성 값을 자유롭게 사용할 수 있습니다.
여기서는 rel 속성에 대한 외부 사용자 정의 값을 사용하여 새 창을 여는 링크를 표시합니다.
최신 웹 표준을 준수하지 않는 링크 코드:
<a href="document.html" target="_blank">외부 링크</a>
rel 속성을 사용하십시오:
<a href="document.html" rel="external">외부 링크</a>
이제 웹 표준을 준수하는 새 창에 대한 링크를 구성했으므로 JavaScript를 사용하여 새 창을 구현해야 합니다. 스크립트가 원하는 것은 웹 페이지가 로드될 때 rel="external"로 정의한 문서에서 모든 하이퍼링크를 찾는 것입니다.
먼저 브라우저를 결정해야 합니다.
if (!document.getElementsByTagName) 반환;
getElementsByTagName은 DOM1 표준에서 사용하기 쉬운 방법이며 현재 대부분의 브라우저에서 지원됩니다. Netscape 4 및 IE4와 같은 일부 오래된 브라우저는 DOM1을 지원하지 않기 때문에 이 방법이 존재하는지 확인하여 이를 배제해야 합니다. 이러한 이전 버전의 브라우저.
다음으로, getElementsByTagName 메소드를 통해 문서의 모든 <a> 태그를 얻습니다.
var 앵커 = document.getElementsByTagName("a");
앵커는 각 <a> 태그를 포함하는 배열로 할당됩니다. 이제 각 <a> 태그를 반복하여 수정해야 합니다.
for (var i=0; i < 앵커.길이; i++) {
var 앵커 = 앵커;
새 창을 열고 싶은 위치에서 <a> 태그를 찾으세요.
if (anchor.getAttribute("href") &&
앵커.getAttribute("rel") == "외부")
다음으로, 속성 값 target을 생성하고 "_target" 값을 할당합니다.
앵커.타겟 = "_blank",
전체 코드:
함수 externalLinks() {
if (!document.getElementsByTagName) 반환;
var 앵커 = document.getElementsByTagName("a");
for (var i=0; i<anchors.length; i++) {
var 앵커 = 앵커;
if (anchor.getAttribute("href") &&
앵커.getAttribute("rel") == "외부")
앵커.타겟 = "_blank";
}
}
window.onload = externalLinks;