Shadow DOM 与 HTML Templates

来源:互联网 发布:sql截取日期的年月日 编辑:程序博客网 时间:2024/05/21 09:37

在之前的Web Components系列文章中,简单介绍了Web Components概要,HTML Templates,Shadow DOM,Shadow DOM(二)。

本文将在此基础上,介绍Shadow DOM与HTML Templates如何一起协作。

在Shadow DOM(二)中,介绍了如何创建Shadow DOM:通过调用createShadowRoot()方法创建root节点,然后在JavaScript中创建普通的HTML节点, 并将这些节点附到Shadow Root上。但这种方式比较繁琐,因为普通的HTML标签也要通过JavaScript方法创建。普通的HTML节点,应该通过声明式的方式创建更为方便、合理。

而HTML Templates便为我们提供了实现这一目的的能力。HTML Templates的介绍,可见这里。

<!DOCTYPE html><html><head>    <meta charset="utf-8">    <title>Demo</title></head><body>    <div class="host">Hello World!</div>    <template id="tmpl">        <h1>Shadow DOM 介绍</h1>        <p>Shadow DOM 详细信息</p>    </template>    <script>        var host = document.querySelector('.host');                var root = host.createShadowRoot();<pre name="code" class="html">        var tmpl = document.querySelector('#tmpl');
root.appendChild(document.importNode(tmpl.content, true)); </script></body></html>


在这个示例代码中,首先通过template标签创建一个HTML模板。在JavaScript前面两行代码与Shadow DOM(二)中的示例是一样的,后面两行代码,首先是获取到template节点,然后将template的内容(content)拷贝后附加到root上。

在浏览器中运行,得到效果如下图所示:


通过这个示例,可以看到如何在创建Shadow DOM的过程中借助Template来实现,这种方式更为简便,而且在template中还可以包含样式等信息,如果在JavaScript中直接创建的话,不仅繁琐而且可维护性很差。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 9个月小孩不吃辅食怎么办 十一个月宝宝拉肚子拉水怎么办 小孩好动上课也坐不住会怎么办 幼儿大班关于环保的手抄报怎么办 捷达车打开丝位子风扇总转怎么办 小班个案分析:好动的孩子该怎么办 孩子突然过于的兴奋不睡觉是怎么办 刚出生的宝宝听力未通过怎么办 孩子多动症被老师打不上学怎么办 小孩在校被学生打家长该怎么办? 8岁儿童好动上课不注意听课怎么办 怀孕第一个月喝了啤酒怎么办 不知道自己怀孕喝了酒怎么办 怀孕一个月不知道喝酒了怎么办 老师说孩子上课不专心听讲怎么办 二年级孩子上课不认真听讲怎么办 二年级的孩子浮躁上课不认真怎么办 三年级的小孩上课不认真听讲怎么办 大班孩子上课不专心听讲玩怎么办 老师跟家长说小孩上课讲话怎么办 别的家长动手打自己的孩子怎么办? 一岁3个月宝宝骨龄偏小怎么办 宝宝9个月了越来越粘人怎么办? 孩子突然说话结巴口吃了怎么办啊 很久不说话了不敢说话了怎么办 宝宝2岁了还不会说话怎么办 2岁的宝宝还不会说话怎么办 小宝宝有四个月了母乳不够吃怎么办 一个月的宝宝吐奶厉害怎么办 新生儿吐奶吐一次吐的特别多怎么办 把孩子打了一次现在说话结巴怎么办 宝宝五岁了口吃越来越严重了怎么办 幼儿把自己的舌头扣破皮了怎么办 6岁宝贝烧到39度怎么办 2岁半的宝宝说话结巴怎么办 2周3宝宝不会说话胆小怎么办 宝宝我2岁多了说话有点结巴怎么办 两岁宝宝说话突然结巴了怎么办 两岁3宝宝叫她名字不理人怎么办 九个月的宝宝身高不达标怎么办 3岁宝宝又吐又拉怎么办