序列化网站的完整 Javascript 状态,包括闭包/隐藏副本

Serializing the complete Javascript state of a website including Closure/Hidden scopies?

本文关键字:闭包 包括 隐藏 副本 状态 网站 Javascript 序列化      更新时间:2023-09-26

我想保存网页的"快照",但是它应该保持"交互式"状态 ->必须保存和恢复所有Javascript状态。

显示我正在尝试解决的问题的示例:给定一个在全局范围内执行以下脚本的网页:

function f(x) { return function() { return x; } }
var g = f(2);

我想将函数 f(或多或少微不足道)和变量 g(从 f 调用中关闭 x )保存到一个文件中,稍后恢复网站的状态。

据我所知,仅使用"网络"技术(即具有网页本身拥有的权限)似乎不可能做到这一点。因此,我猜我必须实现一个浏览器插件才能实现这一目标。

这样的东西已经存在了吗?什么是好的起点?我注意到 Firefox 会话还原做了类似的事情,您知道我是否可以重用这种机制吗?如果不是,将这样的东西实现为"调试器"风格的插件是否可行?有更简单的解决方案吗?

Javascript 对象保留 DOM/其他本机对象。本机对象具有隐藏状态,可以与全局浏览器状态或插件纠缠在一起。

因此,我能想到的唯一真正方法是在 VM 中运行浏览器并快照/克隆该 VM。