问题的简化版
是否有任何方法可以捕获运行时 html(dom 的当前状态)并应用/内联动态(ajax/javascript)网页的所有样式?
更长的版本
我想做的是将 dom 的当前状态保存为单个 html 页面,所有样式都包含在 <style>
中。应用标签或内联样式。
类似地,我需要的是一些类似于 coredump 文件的东西(它给出应用程序的当前状态),但在这种情况下,一个 (html) 文件可以加载到浏览器中以查看/调试。
如果页面中没有 javascript,此任务将非常简单。
- 做
File->Save Page As -> html complete
从网络浏览器 - 或者使用类似 http://www.httrack.com 的工具或 curl 到下载页面和所有链接的图像
下面列出了它在高层次上可以做什么来以编程方式做同样的事情(尽管不是完整的解决方案)
- 获取html内容
- 从每个类似的 onclick 中删除所有标签和 onXXX 属性
- 获取*.css内容
- 在
<style>
中嵌入 css 样式 - 将所有图片路径改为相对路径
- 保存所有图片
但是,当使用 javascript 构建页面时,或者如果页面状态在加载/单击时发生变化,例如某些元素被隐藏并且页面布局发生变化,则无法使用上述方法。
那么如何保存(启用动态 javascript)网页的当前状态?
如果存在这样的方法/工具/插件,那么通过电子邮件发送/与无法访问互联网或网络应用程序的人共享页面会很方便
最佳答案
所以我假设您想在桌面上进行操作? 然后我会使用一个最好的 headless 浏览器,比如 phantomjs,并禁用跨站点脚本。 编写将目标 URL 加载到 iframe 中的 javascript,获取其 dom 并将其保存到文件中。 您仍然需要手动保存所有 CSS,不确定如何内联它。
关于java - 如何在应用所有样式并删除 javascript 的情况下捕获运行时 html 内容/状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8902274/