2012-02-29 5 views
0

사용자 정의 html 태그를 사용하는 것이 여러 가지 이유로 부적절하다는 것을 이해합니다. 그러나 사용자 정의 html 태그를 보증 할 수있는 특정 상황을 실행하고 싶습니다. 내 목표를 달성하는 방법.HTML 템플릿 (사용자 정의) 태그

내 코드 전반에 걸쳐 나는 템플릿과 숨겨진 클래스가 첨부 된 div 태그로 구성된 템플릿이라는 용어를 사용합니다. 이것은 화면에 표시되지 않지만, 기본적으로 이러한 "템플릿"태그에는 Javascript에서 다양한 항목을 만드는 데 사용하는 HTML이 포함되어 있습니다. 나는 HTML로 템플릿을 스타일링 할 수 있기 때문에 CSS를 자바 스크립트와 함께 사용하는 것에 대해 걱정할 필요가 없다.

var template = document.getElementById("template"); 
var clone = template.cloneNode(true); 
clone.removeClass("template hidden"); 

같은

<!-- TEMPLATE --> 
<div class="template hidden"> 
    <span>Random Container</span> 
    <a href="#">Random Button</a> 
</div> 

자바 스크립트에서 내가 할 무언가 오히려 그래서이

<template class="hidden"> 
    <span>Random Container</span> 
    <a href="#">Random Button</a> 
</template> 

처럼 뭔가를 할 수있을 것이라고 나는 하나의 사업부의 I에 여러 템플릿이있는 경우 그 (것)들에게 유일한 종류 이름을주는 것을하기보다는 오히려 그 (것)들을 전부 움켜 잡을 수있다. 물론 구현을 필요로하는 나의 추론은 이것보다 훨씬 깊지 만, 세부 사항으로 시간을 낭비 할 필요는 없습니다. Let 's는 나의 Javascript를 정리하는 데 도움이 될 것이라고 말합니다.

사용자 정의 템플릿 태그가 숨겨 졌기 때문에 실제로 document.getElementsByTagName ("template")을 사용하여 javascript 내에서 호출하기 편리한 컨테이너 일뿐입니다. 괜찮습니까? 나는 템플릿이 html로 구현되는 경우 사용자 정의 이름으로 태그 앞에 접두어를 붙일 것입니다.

+1

"맞춤 HTML 태그"와 같은 것은 없습니다. HTML이거나 그렇지 않습니다. (그리고 [ "element * type * name, dammit"] (http://web.archive.org/web/20110717185451/http://www.flightlab.com/~joe/sgml/faq-not.txt) :-).) –

+0

예, 이해합니다. 고맙습니다. 그 느낌을 분명히하기 위해 내 질문을 편집하고 싶다면, 그 자체가 꽤 이해할 만하다고 생각합니다. – ryandlf

+0

템플릿이 보이지 않을 수도 있지만 https://en.wikipedia.org/wiki/Lynx_%28web_browser%29라고 알려줍니다. –

답변

1

HTML5의 data attributes 중 하나를 사용하지 않는 이유는 무엇입니까? 개인 정보 또는 사용자 정의 정보를 저장하기위한 것입니다.

귀하의 경우 data-type="template" 또는 data-name="template"을 추가 한 다음이를 기반으로 검색하고 제거 할 수 있습니다. <template> 태그를 제거하기 위해 작성하는 것과 같은 간단한 기능 하나만 있습니다.

따라서, 귀하의 예제를 사용하여, <div data-type="template" class="hidden"></div>

+0

div를 사용합니까?JS의 getAttribute ("data-type")는 다른 사용자 정의 속성과 마찬가지로 검색 할 수 있습니까? – ryandlf

+0

예 -'div.getAttribute ("data-type")'이 경우 "template"을 반환합니다. –

2

최신 브라우져는 일반적으로 그것들을 분석하고 요소가 스타일과 스크립트에서 처리 할 수 ​​있도록, DOM 노드를 구성하는 의미에서 사용자 정의 태그를 "지원".

주요 문제는 IE 9 이전의 IE이지만 각 사용자 정의 태그 이름에 대해 document.createElement('...')을 한 번 사용하여 처리 할 수 ​​있습니다.

또 다른 문제는 유효성 검사기가 태그를 오류로보고하고 그러한 오류가 많은 경우 마크 업에서 실제 오류가 발생하지 않을 수 있다는 것입니다. 원칙적으로 자신 만의 DTD를 작성하여 처리 할 수 ​​있습니다 (HTML DTD 생성기를 사용 중이지만 예상보다 더 까다 롭습니다 ...).

클래스를 사용하는 것과 비교하여 본질적으로 작업을 단순화하려면 사용자 정의 태그를 사용하십시오.

관련 문제