এইচটিএমএল 5 <template>এলিমেন্টটি চালু করেছে যা এই উদ্দেশ্যে ব্যবহার করা যেতে পারে (যেমন এখন হোয়াটডব্লিউজি স্পেক এবং এমডিএন ডক্সে বর্ণিত )।
<template>এইচটিএমএলের টুকরোগুলি ঘোষণ করতে একটি উপাদান ব্যবহৃত হয় যা স্ক্রিপ্টগুলিতে ব্যবহার করা যায়। টেমপ্লেটের বিষয়বস্তুগুলিতে অ্যাক্সেস সরবরাহ করার জন্য উপাদানটি ডিওএম-তে উপস্থাপিত হয় HTMLTemplateElementযার একটি ধরণের .contentসম্পত্তি রয়েছে DocumentFragment। এর অর্থ হল যে আপনি কোনও এলিমেন্টের স্ট্রিংটি innerHTMLএকটি <template>এলিমেন্টের সেটিং করে ডিওএম উপাদানগুলিতে রূপান্তর করতে পারেন , তারপরে templateতার .contentসম্পত্তিতে পৌঁছাতে পারেন ।
উদাহরণ:
/**
* @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>');
নোট করুন যে একই ধরণের পন্থা যা বিভিন্ন ধারক উপাদান ব্যবহার করে যেমন একটিdiv কাজ করে না। এইচটিএমএলটিতে অন্যান্য উপাদান উপাদানগুলির মধ্যে কোন উপাদান ধরণের বিদ্যমান থাকতে দেওয়া যায় তার উপর বিধিনিষেধ রয়েছে; উদাহরণস্বরূপ, আপনি এ এর tdসরাসরি সন্তান হিসাবে একটি রাখতে পারবেন না div। এই যদি আপনার সেট করা চেষ্টা বিলুপ্ত এই উপাদান কারণ innerHTMLএকটি এর divতাদের ধারণ করার। থেকে<template> এর সামগ্রীতে এই জাতীয় কোনও বিধিনিষেধ নেই, কোনও টেম্পলেট ব্যবহার করার সময় এই ঘাটতি প্রযোজ্য নয়।
তবে templateকিছু পুরানো ব্রাউজারগুলিতে সমর্থিত নয়। জানুয়ারী 2018 পর্যন্ত আমি ব্যবহার করতে পারেন ... অনুমান বিশ্বজুড়ে ব্যবহারকারীরা ব্রাউজার যা সমর্থন ব্যবহার করছেন 90% templateগুলি । বিশেষত, ইন্টারনেট এক্সপ্লোরারের কোনও সংস্করণ তাদের সমর্থন করে না; মাইক্রোসফ্ট templateএজ প্রকাশের আগ পর্যন্ত সমর্থন কার্যকর করেনি ।
আপনি যদি এমন কোড লেখার পক্ষে যথেষ্ট ভাগ্যবান হন যা কেবলমাত্র আধুনিক ব্রাউজারগুলির ব্যবহারকারীদের জন্য লক্ষ্যযুক্ত হয় তবে এগিয়ে যান এবং এখনই সেগুলি ব্যবহার করুন। অন্যথায়, ব্যবহারকারীদের ধরতে আপনাকে কিছুক্ষণ অপেক্ষা করতে হতে পারে।