javascript - Javascript如何防止将HTML元素添加到DOM?
问题描述
假设我有以下 HTML 源代码:
<html>
<head>
<script src="myscript.js"></script>
<meta charset="utf-8">
<script>/*other script*/</script>
<link rel="stylesheet" ...>
</head>
<body>
<div>...</div>
</body>
</html>
myscript.js 代码是什么样的,以防止添加 DOM 元素,就好像源代码最初是一样的?
<html>
<head>
<script src="myscript.js"></script>
</head>
<body>
</body>
</html>
我已经尝试为所有节点覆盖 javascript DOM 操作方法,例如.append
, .prepend
, .appendChild
,.inserBefore
等。尽管如此,浏览器仍会添加<meta>
、<script>
、<link>
、<div>
等。似乎javascript覆盖只影响javascript创建的节点......这在IMO上是有道理的。
问题是:有没有办法防止添加作为下载 HTML 源的一部分的 DOM 项?
解决方案
您正在寻找Window.stop
:
window.stop() 在当前浏览上下文中停止进一步的资源加载,相当于浏览器中的停止按钮。
由于脚本的执行方式,此方法不能中断其父文档的加载,但会停止其图像、新窗口和其他仍在加载的对象。
这是一个例子:
<div>Div #1</div>
<p>Paragraph #1</p>
<div>Div #2</div>
<script>
window.stop();
</script>
<p>Paragraph #2</p><!-- This element is not rendered -->
推荐阅读
- oracle - 授予视图授权也要求授予目录授权
- c++ - C++ 自定义信号/槽析构函数问题
- r - 在列表列表中搜索 NA
- hibernate - Hibernate Criteria Restrictions AND combination with in 子句
- json - jsonschema:只有一个默认元素的元素列表
- reactjs - 反应)“this.props”,同时使用路由器共享“状态”
- c# - 使用 MVVM 通过鼠标单击放大和缩小图像
- maven - 如何在 Jenkins 中运行自定义 maven 目标?
- django - 将scrapy爬虫与Django集成
- obiee - 如何在 OBIEE 12c 中查看业务模型和映射层中的数据?