骚操作:如何让一个网页一直处于空白情况?

news/2024/9/21 1:48:38

🧑‍💻 写在开头

点赞 + 收藏 === 学会🤣🤣🤣

如题,惯性思路很简单,就是直接撸上一个空内容的html。

注:以下都是在现代浏览器中执行,主要为**Chrome 版本 120.0.6099.217(正式版本) (64 位)和Firefox123.0.1 (64 位) **

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>demo</title>
</head>
<body>
</body>
</html>

؏؏☝ᖗ乛◡乛ᖘ☝؏؏~

但是,要优雅~咱玩的花一点,如果这个HTML中加入一行文字,比如下面这样,如何让这行文字一直不显示出来呢?

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>demo</title>
</head>
<body>
<div>放我出去!!!</div>
</body>
</html>

思考几秒~有了,江湖一直传言,Javascrip代码执行不是影响Render树生成么,上循环!于是如下

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>demo</title>
</head>
<body>
<div>放我出去!!!</div>
<script>while (1) {let a;}// 或者这样/*(function stop() {var message = confirm("我不想让文字出来!");if (message == true) {stop()} else {stop()}})()*/
</script>
</body></html>
```一下一下
bingo,可以实现,那再换个思路呢?加载资源?说干就干,在开发者工具上,设置上下载速度为1kb/s,测试了以下三种类型资源```html
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>demo</title>
</head>
<body><!-- <link rel="stylesheet" href="https://lf3-cdn-tos.bytescm.com/obj/static/xitu_juejin_web/static/bytedesign.min.css" as="style"/> --><!-- <img src="https://lf3-cdn-tos.bytescm.com/obj/static/xitu_juejin_web/static/bytedesign.min.css"/> --><div class="let-it-go">放我出去!!!</div><script src="https://lf3-cdn-tos.bytescm.com/obj/static/log-sdk/collect/5.1/collect.js"></script><style>.let-it-go {color: red;}</style>
</body>
</html>

总得来说,JS和CSS文件,需要排在.let-it-go元素前面或者样式前面,才会影响到渲染DOM或者CSSOM,图片或者影片之类的,不管放前面还是后面,都无影响。如果在css文件中,一直有import外部CSS,也是有很大影响!

但正如题目,这种只能影响一时,却不能一直影响,就算你在代码里写一个在头部不停插入脚本,也没有用,比如如下这么写,按,依旧无效:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>demo</title>
</head>
<body><link rel="stylesheet" href="https://lf3-cdn-tos.bytescm.com/obj/static/xitu_juejin_web/static/bytedesign.min.css"as="style" /><!-- <img src="https://lf3-cdn-tos.bytescm.com/obj/static/xitu_juejin_web/static/bytedesign.min.css"/> --><script>// setInterval(()=>{// 不停插入script脚本 或者css文件let index = '';(function fetchFile() {var script = document.createElement('script');script.src = `https://lf3-cdn-tos.bytescm.com/obj/static/log-sdk/collect/5.1/collect${index}.js`;document.head.appendChild(script);script.onload = () => {fetchFile()}script.onerror = () => {fetchFile()}index+=1// 创建一个 link 元素//var link = document.createElement('link');// 设置 link 元素的属性// link.rel = 'stylesheet';// link.type = 'text/css';// link.href = 'https://lf3-cdn-tos.bytescm.com/obj/static/xitu_juejin_web/app.f81e9f9${index}.css';// 将 link 元素添加到文档的头部//document.head.appendChild(link);})()// },1000)</script><div class="let-it-go">放我出去!!!</div><style>.let-it-go {color: red;}</style><!-- <script src="https://lf3-cdn-tos.bytescm.com/obj/static/log-sdk/collect/5.1/collect.js"></script> -->
</body></html>

那么,还有别的方法吗?暂时没有啥想法了,等后续再在这篇上续接~

另外,在实验过程中,有一个方式让我很意外,以为以下代码也会造成页面一直空白,但好像不行。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>demo</title>
</head>
<body><div id="appp"></div><script>(function createElement() {var parentElement = document.getElementById('appp');// 创建新的子元素var newElement = document.createElement('div');// 添加文本内容(可选)newElement.textContent = '这是新的子元素';// 将新元素添加到父元素的子元素列表的末尾parentElement.appendChild(newElement);createElement()})()</script><div class="let-it-go">放我出去!!!</div>
</body>
</html>
这可以很好的证明,插入DOM元素这个任务,会在主HTML渲染之后再执行。

如果对您有所帮助,欢迎您点个关注,我会定时更新技术文档,大家一起讨论学习,一起进步。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/47375.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

iptables之state状态

iptables配置详解 -A参数是将规则写到现有链规则的最后面-I 参数默认是将一条规则添加到现有规则链的最前面,当然也可以指定插入到第几行 行数可以用数字来指定 比如说将一条规则添加到某一条链的第三行 那么原来在第三行的规则就会降到下一行第四行。例如: iptables -I 3 …

python 目标检测yoloV5搭建pytorch环境、paddle环境

​ pytorch环境 创建环境 conda create -n pytorch python=3.8执行如下命令,激活这个环境。conda activate 虚拟环境名称 conda activate pytorchPytorch环境安装 conda install pytorch==1.8.0 torchvision==0.9.0 torchaudio==0.8.0 cudatoolkit=11.1 -c pytorch -c conda-f…

AIGC入门体验

浅尝 AIGC 之入门体验 AIGC,即人工智能生成内容(Artificial Intelligence Generated Content),是利用机器学习、深度学习等技术自动生成文本、图像、音频、视频等多媒体内容的一种方式。这个领域融合了多个技术分支,下面我会从原理、底层技术、逻辑流程、应用实例以及入门…

js逆向之——百度翻译接口

逆向目标: 主页:https://fanyi.baidu.com/translate?aldtype=16047&query=&keyfrom=baidu&smartresult=dict&lang=auto2zh&ext_channel=Aldtype#auto/zh/ 接口URL:https://fanyi.baidu.com/v2transapi?from=en&to=zh 接口参数:ts、token、sign 逆…

Ocelot代理各个软件错误解决

代理identity{"DownstreamPathTemplate": "/{url}","DownstreamScheme": "https",//这里更改就行"DownstreamHostAndPorts": [{"Host": "localhost","Port": 7128}],"UpstreamPathTempl…

你还在手动操作仓库?这款 CLI 工具让你效率飙升300%!

前言 作为一名开发者,我经常会在 GitHub 和 Gitee 上 fork 各种项目。时间一长,这些仓库就会堆积如山,变成了“垃圾仓库”。每次打开代码托管平台,看到那些不再需要的仓库,我的强迫症就会发作。手动一个一个删除这些仓库不仅耗时耗力,还非常枯燥乏味。 为了彻底解决这个…

K8s高可用集群二进制部署-V1.20

一、前置知识点 1.1 生产环境部署K8s集群的两种方式 kubeadm Kubeadm是一个K8s部署工具,提供kubeadm init和kubeadm join,用于快速部署Kubernetes集群。 二进制包 从github下载发行版的二进制包,手动部署每个组件,组成Kubernetes集群。 小结:Kubeadm降低部署门槛,但屏蔽了…

openGauss MOT数据采集速度

MOT数据采集速度 该测试模拟海量物联网、云端或移动端接入的实时数据流,快速持续地把海量数据注入到数据库。本次测试涉及大量数据采集,具体如下:1000万行数据由500个线程发送,2000轮,每个insert命令有10条记录(行),每条记录占200字节。 客户端和数据库位于不同的机器上…