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;