새 창에서 링크를 열고 싶을 때 일반적인 방법은 링크 뒤에 target="_blank"를 추가하는 것입니다. 전환 DOCTYPE(xh tml1-transitional.dtd)을 사용할 때는 문제가 없습니다. 엄격한 DOCTYPE(xhtml1- strict.dtd)을 사용하는 경우 이 방법은 W3C 확인에 실패하고 다음 오류 메시지가 나타납니다.
"(이 HTML 버전에서는) 이 요소에 대한 속성 대상이 없습니다."
HTML4.01/XHTML1.0/XHTML1.1의 엄격한 DOCTYPE에서는 target="_blank", target="_self" 및 기타 구문이 유효하지 않으며 JavaScript를 통해서만 구현할 수 있는 것으로 나타났습니다.
친구가 왜 target="_blank"를 사용할 수 없는지 물었습니다. 이 속성은 매우 편리합니다. 하하, W3C 전문가들은 어떻게 생각하는지 모르겠습니다. 제가 아는 한 주로 "사용 편의성과 친근함"에 관한 것입니다. 외국인들은 사용자의 동의나 명확한 안내 없이 새 창을 여는 것이 무례하다고 생각하기 때문입니다. 의. 이번 취소가 합리적인지 여부를 떠나 해결책을 살펴보겠습니다.
상대 속성
HTML4.0에는 rel이라는 새로운 속성이 추가되었습니다. 이 속성은 링크와 링크가 포함된 페이지 간의 관계 및 링크 대상을 설명하는 데 사용됩니다. rel에는 다음, 이전, 장, 섹션 등과 같은 많은 속성 값이 있습니다. 우리가 사용하고 싶은 것은 rel="externa l" 속성입니다. 원래 코드는 다음과 같이 작성되었습니다.
<a href="document.html" target="_blank"> 새 창 열기</a>
이제 다음과 같이 작성될 것입니다.
<a href="document.html" rel="external">새 창 열기</a>
이것은 엄격한 방법입니다. 물론 자바스크립트와 결합해야 효과적이다.
자바스크립트의 전체 코드 JS는 다음과 같습니다.
함수 외부 링크() {
if (!document.getElementsByTagName) 반환;
var 앵커 = document.getElementsByTagName("a");
for (var i=0; i<anchors.length; i++) {
var 앵커 = 앵커[i];
if (anchor.getAttribute("href") &&
앵커.getAttribute("rel") == "외부")
앵커.타겟 = "_blank";
}
}
window.onload = 외부링크;
.js 파일(예: external.js)로 저장하고 외부 연결 방법을 통해 호출할 수 있습니다.
<script type="text/javascript" src="external.js"></script>
그게 다야.
마지막으로, 내 웹사이트에서 사용하는 target="new"는 과도기적인 DOCTYPE에서 허용되지만 엄격한 표준을 충족하지 않는다는 점을 덧붙이고 싶습니다. 다음 개정판에서는 엄격 모드를 사용하고 모든 target="new"를 rel="external"로 변경하겠습니다.