java - 如何在应用所有样式并删除 javascript 的情况下捕获运行时 html 内容/状态

标签 java javascript html browser browser-addons

问题的简化版

是否有任何方法可以捕获运行时 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/

相关文章:

java - 网络服务设计

java - JCheckBox 列表错误?

javascript错误无法读取未定义的属性 'length'

javascript - Bootstrap 网站在移动设备上没有响应

java - 如何在java中计算curve1174的加倍?

java - 如何将一个html网站的一部分集成到java程序中?

javascript - 提交 Rails 表单是否可以避免离开当前 View ?

javascript - 如何修复多个函数中重复的 javascript 代码?

html - 使用 flex 在没有设置宽度的情况下向下推送内容

javascript - 当多个 Canvas 同时运行时,Chrome CPU 使用率过高