如何在原始DOM和由Content脚本更改的DOM之间切换

How to switch between original DOM and the DOM changed by a Content script?

本文关键字:DOM 之间 Content 原始 和由 脚本      更新时间:2023-09-26

我正在制作一个Chrome扩展,它可以更改页面的DOM。但我想给用户一个选项,在更改前的页面和更改后的页面之间切换。

这有点像谷歌翻译,你可以在原始语言和翻译信息之间切换。

我在自己的搜索中找不到任何东西。

我知道JavaScript,但还不知道JQuery。

谢谢你的帮助。

您可以将整个主体保存在一个变量中,然后开始覆盖内容。如果你想换装旧的身体。

您可以在运行内容脚本之前将所有原始DOM内容保存到一个变量中。您可以通过在内容脚本顶部使用以下代码来实现这一点:

var originalDOM = document.getElementsByTagName("*");

这将整个DOM保存在一个名为originalDOM的数组中。*充当通用标签,请求文档中的每个标签。您可以在此处阅读有关.getElementsByTagName() API的更多信息。

您可以尝试:

var html = document.getElementsByTagName("html")[0];
var page = html.innerHTML;

这将为您提供<html>标记之间的所有内容。注入内容脚本后,运行:

var newPage = html.innerHTML;

现在,只要你想在页面之间切换,只需运行:

html.innerHTML = page; //or newPage

您可以在此处阅读有关.getElementsByTagName()API的更多信息