当前位置: 首页 > news >正文

网站首页设计模板深圳公司排名名字

网站首页设计模板,深圳公司排名名字,做网站先要学,优秀的vi设计手册一、什么是Shadow DOM Shadow DOM是一种在web开发中用于封装HTML标记、样式和行为的技术,以避免组件间的样式和脚本冲突。它允许开发者将网页的一部分隐藏在一个独立的作用域内,从而实现更加模块化和可维护的代码结构 二、js操作Shadow DOM // 获取宿…

一、什么是Shadow DOM

  • Shadow DOM是一种在web开发中用于封装HTML标记、样式和行为的技术,以避免组件间的样式和脚本冲突。
  • 它允许开发者将网页的一部分隐藏在一个独立的作用域内,从而实现更加模块化和可维护的代码结构

二、js操作Shadow DOM

// 获取宿主元素
const host = document.getElementById('main');// 创建一个Shadow Root
const shadowRoot = host.attachShadow({mode: 'open'});// 在Shadow DOM中添加内容
shadowRoot.innerHTML = `<style>:host { display: block; }</style><p>Hello, Shadow DOM!</p>`;// 访问Shadow DOM中的内容
const shadowContent = host.shadowRoot.querySelector('p').textContent;
console.log(shadowContent); // 输出: Hello, Shadow DOM!

注意:这里attachShadow函数的mode参数有2种,open和closed。

  • 当mode设置为open时,Shadow DOM是相对开放的。这意味着外部的JavaScript代码可以通过宿主元素的shadowRoot属性访问Shadow DOM。这种访问权限允许开发者读取和修改Shadow DOM的结构和内容。
  • 当mode设置为closed时,Shadow DOM对外部JavaScript是不可访问的。这意味着宿主元素的shadowRoot属性在外部代码中将会返回null,从而无法直接访问或操作Shadow DOM的内容。

三、如何获取closed的shadowRoot里的内容

  • 网络上的数据如果不想让我们获取的话,一定是会使用closed模式,让我们无法js访问。

在这里插入图片描述

  • 但这里我们现在就是要获取closed的数据里面的内容怎么办呢?这里我提供一个解决方案:修改chromium源码,使shadowRoot的mode强行变为open。
1.找到源码:
  • 打开:\third_party\blink\renderer\core\dom\element.cc

  • 找到:

ShadowRoot* Element::attachShadow(const ShadowRootInit* shadow_root_init_dict,ExceptionState& exception_state) {DCHECK(shadow_root_init_dict->hasMode());String mode_string = shadow_root_init_dict->mode();
2.替换为:
ShadowRoot* Element::attachShadow(const ShadowRootInit* shadow_root_init_dict,ExceptionState& exception_state) {DCHECK(shadow_root_init_dict->hasMode());//String mode_string = shadow_root_init_dict->mode();mode_string = "open";
3.编译:
ninja -C out/Default chrome

编译完成后,可以发现所有的shadowRoot状态全部变成open啦。

四、还可以优化

  • 由于有些站会做反爬检测,如果发现shadowRoot返回的不是null后,就返回一些错误信息。
  • 这里我的优化思路是给Element新增一个魔改后的shadowRoot2属性,这样网站继续检测shadowRoot是不会有问题啦,有人关注的话会再补,没人关注就不写了。
  • 励志做个好用的爬虫浏览器。
http://www.yayakq.cn/news/692203/

相关文章:

  • 怀化网站排名优化网页设计与制作简介
  • 郑州网站关键词优化公司哪家好题库网站开发
  • 网站在线支付接口哪家网站做的好
  • 开网站需要什么流程做网站设计都做些什么
  • 怎么做代理ip网站win7系统做网站服务器
  • 网站更换主机需要怎么做如何建设网站济南兴田德润o简介电话
  • 工控做网站建设河南分行网站
  • 西安营销型网站建设公司扶余手机网站开发
  • mssql网站开发美工网站
  • 如何做一个购物网站中国建筑装饰网注册用户名
  • tomcat 怎么做网站微信商城收费吗
  • 专业定制网站开发外贸平台免费网站
  • 宁夏网站建设多少钱wordpress站酷首页
  • 字体样式 网站中国菲律宾直播
  • 普陀学校网站建设山东菏泽网站建设
  • 绵阳微信网站网页设计学校
  • 邵阳做网站价格做网页引用别的网站的视频
  • 广州企业网站建设多少钱网站建设英文怎么说
  • jsp网站建设 书籍哪些网站可以做兼职
  • 手机靓号网站建设自己的网站怎么做seo
  • 西安网站建设是什么网站怎么做免费
  • 企业网站和信息化建设制度app设计案例
  • 电子商务网站建设课设创恒建设有限公司网站
  • 建什么类型个人网站东营市住宅与房地产信息网
  • 网站流量 seo专门做衣服的网站
  • 网站建设用图企业qq一年多少费用
  • 网站开发系统源代码做网站阳泉
  • 台州自助建站在线咨询重庆做网站优化推广的公司
  • app推广平台网站建网站郑州
  • 外贸网站都有哪些内容莆田系医院的网站用什么做的