HTML5技术

神秘的 shadow-dom 浅析 - ChokCoco(2)

字号+ 作者:H5之家 来源:博客园 2016-07-30 11:00 我要评论( )

不幸的是,上面的控制方式只适用于 chrome 浏览器,虽然大部分现代浏览器已经支持shadow-dom,但是能够审查shadow-dom内部 DOM 元素的只有chrome浏览器,其他浏览器仍会把这些细节隐藏。 使用 Javascript 创建一个

不幸的是,上面的控制方式只适用于 chrome 浏览器,虽然大部分现代浏览器已经支持 shadow-dom ,但是能够审查 shadow-dom 内部 DOM 元素的只有 chrome 浏览器,其他浏览器仍会把这些细节隐藏。

  使用 Javascript 创建一个 shadow-dom 元素

我们也可以通常 Javascript 创建 shadow-dom ,实现各类功能的封装,主要通过:

HTMLElement.prototype.createShadowRoot = HTMLElement.prototype.createShadowRoot || HTMLElement.prototype.webkitCreateShadowRoot || function() {};

看看下面这个例子,在chrome内核浏览器下,将创建一个简单的 shadow-dom ,将我们的代码放入一个template 中,再通过 importNode 插入到 shadow-dom 中:

如果你现在在 chrome 内核浏览器下访问本文,那么上述的 codePen 中你应该可以看到 createShadowDomByJs 这一行文字,打开审查元素,会看到 <p> 结构是隐藏在 shadow-dom 中的。

  shadow-dom 兼容性

  shadow-dom 的未来

本文是非常基本的一些关于 shadow-dom 的概念,只是它的冰山一角,没有十分深入的去研究。

现行的组件都是开放式的,即最终生成的 HTML DOM 结构难以与组件外部的 DOM 进行有效结构区分,样式容易互相混淆。Shadow-dom 的 封装隐藏性为我们提供了解决这些问题的方法。在 Web 组件化的规范中也可以看到 Shadow-dom 的身影,使用具有良好密封性的 Shadow-dom 开发下一代 Web 组件将会是一种趋势。

  更多资源及参考文章

如果你读完本文后仍然意犹未尽,可以看看下面这些文章:

 

到此本文结束,如果还有什么疑问或者建议,可以多多交流,原创文章,文笔有限,才疏学浅,文中若有不正之处,万望告知。

 

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • 浓缩的才是精华:浅析GIF格式图片的存储和压缩 - 腾讯云技术社区

    浓缩的才是精华:浅析GIF格式图片的存储和压缩 - 腾讯云技术社区

    2017-04-07 15:08

  • 本地存储浅析 - 2778085001

    本地存储浅析 - 2778085001

    2016-07-16 12:00

  • 本地存储浅析 - jerrylsxu

    本地存储浅析 - jerrylsxu

    2016-05-08 18:00

  • 【深入浅出jQuery】源码浅析2--奇技淫巧 - ChokCoco

    【深入浅出jQuery】源码浅析2--奇技淫巧 - ChokCoco

    2016-03-29 18:00

网友点评
m