HTML 5 <template>
, bu amaçla kullanılabilecek öğeyi tanıttı (şimdi WhatWG spesifikasyonunda ve MDN belgelerinde açıklandığı gibi ).
Bir <template>
öğe, komut dosyalarında kullanılabilecek HTML parçalarını bildirmek için kullanılır. Öğe, DOM'da şablonun içeriğine erişim sağlamak için bir tür özelliğe HTMLTemplateElement
sahip olarak temsil edilir . Bu , bir öğeyi ayarlayıp daha sonra ' özelliğine erişerek bir HTML dizesini DOM öğelerine dönüştürebileceğiniz anlamına gelir ..content
DocumentFragment
innerHTML
<template>
template
.content
Örnekler:
/**
* @param {String} HTML representing a single element
* @return {Element}
*/
function htmlToElement(html) {
var template = document.createElement('template');
html = html.trim(); // Never return a text node of whitespace as the result
template.innerHTML = html;
return template.content.firstChild;
}
var td = htmlToElement('<td>foo</td>'),
div = htmlToElement('<div><span>nested</span> <span>stuff</span></div>');
/**
* @param {String} HTML representing any number of sibling elements
* @return {NodeList}
*/
function htmlToElements(html) {
var template = document.createElement('template');
template.innerHTML = html;
return template.content.childNodes;
}
var rows = htmlToElements('<tr><td>foo</td></tr><tr><td>bar</td></tr>');
Farklı bir kap öğesi kullanandiv
benzer yaklaşımların işe yaramadığını unutmayın. HTML'de, diğer öğe türlerinin içinde hangi öğe türlerinin bulunmasına izin verildiği konusunda kısıtlamalar vardır; örneğin, td
a öğesini doğrudan a div
. Bu ayarlamaya çalışırsanız kaybolmak bu öğeleri neden innerHTML
a div
bunları içerecek şekilde. Yana <template>
ler, içeriklerinde böyle kısıtlamaları vardır bir şablon kullanırken, bu eksiklik geçerli değildir.
Ancak, template
bazı eski tarayıcılarda desteklenmez. Ocak 2018 itibarıyla, kullanabilir miyim ... Dünya genelinde kullanıcıların% 90'ının template
s destekleyen bir tarayıcı kullandığını tahmin ediyor . Özellikle, hiçbir Internet Explorer sürümü bunları desteklemez; Microsoft template
, Edge piyasaya sürülene kadar destek uygulamadı .
Yalnızca modern tarayıcılardaki kullanıcıları hedefleyen kod yazabileceğiniz kadar şanslıysanız, devam edin ve bunları hemen kullanın. Aksi takdirde, kullanıcıların yetişmesi için bir süre beklemeniz gerekebilir.