遗留网站在与当前浏览器不兼容时使用 JavasSript 删除某些元素。像这样的东西:
if (!navigator.javaEnabled())
document.getElementById('greenscreen').innerHTML = '<p>Not Supported on this browser';
是否有一种简单的方法来恢复原始 HTML / DOM(至少是已删除的元素),或者确保我们的脚本在此脚本之前运行,或者以其他方式找出
#greenscreen
中的内容?我们无法修改现有的 JavaScript,但需要以某种方式添加新的 JavaScript 来解析#greenscreen
HTML 并获取信息。
鉴于您的目标是解析一些 HTML,如果您不依赖此网页运行的任何 JS 对 DOM 所做的any 修改,这里有一种方法:只需使用页面的 URL 执行 HTTP 请求(
document.location.href
)。前任。使用 Fetch API: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
})();