如何在原始DOM和由Content脚本更改的DOM之间切换
How to switch between original DOM and the DOM changed by a Content script?
我正在制作一个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的更多信息
相关文章:
- DOM元素和angular元素之间的主要区别是什么
- JS DOM - document.getElementById 和按名称选择之间的区别
- 根据DOM,HTML元素的开始和结束标记之间的内容被称为属性.这个房产的名字是什么
- 使用AngularJS在Bootstrap选项卡之间移动DOM元素
- DOM 中两个元素之间的距离(以 px 为单位)
- jQuery中CSS和DOM符号之间的区别
- 在数据表表和普通 DOM 表之间移动(添加/删除)tr 行
- 任意运行时脚本元素和 DOM 元素之间的连接
- 直接在 HTML 中设置“onclick”与通过 DOM 设置“onclick”之间有区别吗?
- DOM 中元素之间的“距离”(生成深度等)
- DOM “style” 属性与实际 CSS 样式之间的关系
- 如何处理DOM和Controller之间的交互
- 输入类型之间的 DOM/jQuery 事件传播差异
- JavaScript/CSS:向DOM添加元素和应用其CSS规则之间的延迟
- 在http和https之间共享dom存储
- jQuery与普通javascript:构建DOM树时append和appendChild之间的区别
- 如何在原始DOM和由Content脚本更改的DOM之间切换
- jquery DOM两个节点之间的距离
- 如何计算两个DOM元素之间的关系?例如,他们的亲缘关系有多近
- 使用DOM在HTML文件和链接的.js文件之间传递信息