javascript - 使用 JavaScript 完全替换 html 元素(无库)

标签 javascript html

<分区>

我正在研究嵌入式 WKWebView(iOS 上的浏览​​器 View ),所以我不想/不能使用任何库,并且需要纯粹在 JavaScript 中实现以下目标。

在加载 Web View 的内容时,我想清除以前的内容,并显示类似“正在加载...”的内容。

最明显的方法是

document.body.innerHTML = "Loading...";

(方法一)

但问题是它保留了页面的其他元素(例如脚本、样式)完好无损,而我需要重置样式(例如清除背景、字体等)

有一种方法可以通过删除 HTML 元素来清除所有内容,这很好

document.documentElement.remove()

(方法二)

但是我怎样才能添加具有新内容的新 HTML 元素呢?

那么有没有一种方法可以使用方法 2 添加新的 HTML 元素,或者使用方法 1 清除样式、脚本等?

注意:Loading... 只是我想使用的示例文本,如果重要的话,实际内容可以是正确的 HTML。

最佳答案

尝试

document.documentElement.remove();

var html = document.createElement('html');
var body = document.createElement('body');

html.appendChild(body);
document.appendChild(html);

document.body.innerHTML = `<span>Here your arbitrary html</span>`;
<div>x</div>

关于javascript - 使用 JavaScript 完全替换 html 元素(无库),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57616855/

相关文章:

html - Float 不适用于 Twitter-Bootstrap

jquery - IE 中的圆 Angular 使用 ui-corner-all

javascript - 替换 Ember 3 中已弃用的 `this.$()`

javascript - 尝试实时更新 2 个输入字段的计算

javascript - 当我浏览返回页面时,Google Maps InfoWindow 不弹出

html - 将输入字段左对齐

javascript - 如何在没有标签的情况下仅显示 HTML 代码中的前 x 个字符

javascript - 执行函数 appear() 出现在 If 语句中

javascript - 如何使用 Fuse.js 和 Redis 在 MySQL 表中进行全文搜索?

javascript - Node js定义响应有效负载结构