在从 JavaScript 修改之前恢复原始 HTML 或 DOM

问题描述 投票:0回答:1

遗留网站在与当前浏览器不兼容时使用 JavasSript 删除某些元素。像这样的东西:

if (!navigator.javaEnabled())
  document.getElementById('greenscreen').innerHTML = '<p>Not Supported on this browser';

是否有一种简单的方法来恢复原始 HTML / DOM(至少是已删除的元素),或者确保我们的脚本在此脚本之前运行,或者以其他方式找出

#greenscreen
中的内容?我们无法修改现有的 JavaScript,但需要以某种方式添加新的 JavaScript 来解析
#greenscreen
HTML 并获取信息。

javascript dom events
1个回答
0
投票

鉴于您的目标是解析一些 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
})();
© www.soinside.com 2019 - 2024. All rights reserved.