提问人:SRobertJames 提问时间:4/22/2023 最后编辑:starballSRobertJames 更新时间:4/22/2023 访问量:61
从 JavaScript 中恢复修改前的原始 HTML 或 DOM
Recover the original HTML or DOM before modification from JavaScript
问:
旧版网站在与当前浏览器不兼容时使用 JavasSript 删除某些元素。像这样:
if (!navigator.javaEnabled())
document.getElementById('greenscreen').innerHTML = '<p>Not Supported on this browser';
有没有一种简单的方法可以恢复原始的HTML / DOM(至少是已删除的元素),或者确保我们的脚本在此脚本之前运行,或者以其他方式找出其中的内容?我们无法修改现有的 JavaScript,但需要以某种方式添加新的 JavaScript 来解析 HTML 并获取信息。#greenscreen
#greenscreen
答:
1赞
starball
4/22/2023
#1
鉴于你的目标是解析一些 HTML,如果你不依赖于此网页运行的任何 JS 对 DOM 所做的任何修改,这里有一种方法是有效的:只需使用页面的 URL 执行 HTTP 请求 ()。例如,使用 Fetch API: .document.location.href
await (await fetch(document.location.href)).text()
如果你想在它上面使用 DOM 方法,那就把它变成一个文档:
(async function() {
const html = await fetch(document.location.href)).text();
const parser = new DOMParser();
const doc = parser.parseFromString(html, "text/html");
doc.getElementById("greenscreen");
// TODO
})();
评论
innerHTML
async
<script>window.oldGreen = document.getElementById('greenscreen').innerHTML;</script>