खोज…
वाक्य - विन्यास
- .prototype.createdCallback ()
- .prototype.attachedCallback ()
- .prototype.detachedCallback ()
- .prototyp.attributeChangedCallback (नाम, पुरानेवैल्यू, न्यूवैल्यू)
- document.registerElement (नाम, [विकल्प])
पैरामीटर
पैरामीटर | विवरण |
---|---|
नाम | नए कस्टम तत्व का नाम। |
options.extends | मूल तत्व का नाम बढ़ाया जा रहा है, यदि कोई हो। |
options.prototype | कस्टम प्रोटोटाइप कस्टम तत्व के लिए उपयोग करने के लिए, यदि कोई हो। |
टिप्पणियों
ध्यान दें कि कस्टम तत्व विनिर्देश अभी तक मानकीकृत नहीं हुआ है, और परिवर्तन के अधीन है। प्रलेखन उस संस्करण का वर्णन करता है जिसे इस समय क्रोम स्थिर में भेज दिया गया है।
कस्टम तत्व एक HTML5 सुविधा है जो डेवलपर्स को संबंधित शैलियों और व्यवहारों के साथ अपने पृष्ठों में उपयोग किए जा सकने वाले कस्टम HTML टैग्स को परिभाषित करने के लिए जावास्क्रिप्ट का उपयोग करने की अनुमति देता है। वे अक्सर छाया-डोम के साथ उपयोग किए जाते हैं।
नए तत्वों का पंजीकरण
परिभाषित करता है एक <initially-hidden>
कस्टम तत्व जो अपनी सामग्री को तब तक छुपाता है जब तक कि निर्दिष्ट सेकंड समाप्त न हो जाए।
const InitiallyHiddenElement = document.registerElement('initially-hidden', class extends HTMLElement {
createdCallback() {
this.revealTimeoutId = null;
}
attachedCallback() {
const seconds = Number(this.getAttribute('for'));
this.style.display = 'none';
this.revealTimeoutId = setTimeout(() => {
this.style.display = 'block';
}, seconds * 1000);
}
detachedCallback() {
if (this.revealTimeoutId) {
clearTimeout(this.revealTimeoutId);
this.revealTimeoutId = null;
}
}
});
<initially-hidden for="2">Hello</initially-hidden>
<initially-hidden for="5">World</initially-hidden>
मूल तत्वों का विस्तार
देशी तत्वों को सीमित करना संभव है, लेकिन उनके वंशजों को अपने स्वयं के टैग नाम नहीं मिलते हैं। इसके बजाय, is
विशेषता है जो उपवर्ग एक तत्व उपयोग माना जाता है निर्दिष्ट करने के लिए प्रयोग किया जाता है। उदाहरण के लिए, यहां <img>
तत्व का विस्तार है जो लोड होने पर कंसोल को संदेश भेजता है।
const prototype = Object.create(HTMLImageElement.prototype);
prototype.createdCallback = function() {
this.addEventListener('load', event => {
console.log("Image loaded successfully.");
});
};
document.registerElement('ex-image', { extends: 'img', prototype: prototype });
<img is="ex-image" src="http://cdn.sstatic.net/Sites/stackoverflow/img/apple-touch-icon.png" />