影子DOM

作者: 从不放弃 | 来源:发表于2022-10-20 17:43 被阅读0次

定义

影子DOM的规范草案能够使得一些DOM节点在特定范围内可见,而在网页的DOM树中却不可见,但是网页渲染的结果中包含了这些节点,这就使得封装变得容易很多。

image.png

应用

HTML5支持了很多新的特性,例如对视频、音频的支持,读者会发现这些元素其实是由很复杂的控制界面组成,这些界面也是使用HTML元素编写,但是在DOM树中,你无法找到相应的节点,这其实也是使用了影子DOM的思想。

事件处理

因为影子DOM的子树在整个网页的DOM树中不可见,那么事件是如何处理的呢?
事件中需要包含事件目标,这个目标当然不能是不可见的DOM节点,所以事件目标其实就是包含影子DOM子树的节点对象。
事件捕获的逻辑没有发生变化,在影子DOM子树内也会继续传递。
当影子DOM子树中的事件向上冒泡的时候,WebKit会同时向整个文档的DOM上传递该事件,以避免一些很奇怪的行为。

创建

<html>
    <body>
        <div id="div"></div>
        <script type="text/javascript">
          window.onload=function(){
            var adiv=document.getElementById("div");
            //var root=adiv.webkitCreateShadowRoot();
            let root = adiv.attachShadow({ mode: 'open' });
            var shadowImg=document.createElement("img");
            shadowImg.src="apic.png";
            root.appendChild(shadowImg);
            var shadowDiv=document.createElement("div");
            shadowDiv.innerHTML="This is a div from shadow dom!";
            root.appendChild(shadowDiv);
         }
        </script>
       </body>
    </html>

链接

https://developer.mozilla.org/zh-CN/docs/Web/Web_Components/Using_shadow_DOM

相关文章

  • 影子DOM

    创建影子DOM,createShadowRoot()。影子dom能将内部的节点信息封装起来,例如video与aut...

  • 影子DOM

    定义 影子DOM的规范草案能够使得一些DOM节点在特定范围内可见,而在网页的DOM树中却不可见,但是网页渲染的结果...

  • Web Components使用(二)

    在上一章节中主要介绍了Custom elements(自定义元素),Shadow DOM(影子DOM)的使用,我们...

  • 浏览器新特性--shadow DOM

    shadow DOM是什么 直译过来就是影子DOM:他是独立封装的一段html代码块,他所包含的html标签、cs...

  • 前端面试每日 3+1 —— 第27天

    今天的面试题 (2019.05.13) —— 第27天 [html] 说说你对影子(Shadow)DOM的了解 [...

  • dom 级别和dom 事件处理

    dom级别:dom0 dom1 dom2 dom3 dom事件处理:dom0 dom2 dom3 (1级DOM标准...

  • WY-DOM编程

    DOM Document Object Model DOM Core DOM HTML DOM Style DOM...

  • DOM事件

    DOM级别与DOM事件 DOM级别:DOM0级、DOM1级、DOM2级、DOM3级DOM事件:DOM0级事件处理、...

  • DOM事件

    DOM级别与DOM事件 DOM级别:DOM0级,DOM1级,DOM2级和DOM3级DOM事件:DOM0级事件处理,...

  • js红包雨活动

    function Block( dom ){ this.dom = dom; //dom this.parentW...

网友评论

      本文标题:影子DOM

      本文链接:https://www.haomeiwen.com/subject/ejbuzrtx.html