【发布时间】:2014-12-03 20:32:05
【问题描述】:
我需要一种方法来获取页面中已经加载的网页并保存页面的完整 DOM(作为 HTML 字符串),这样如果我将 HTML 作为单个文件离线加载,它将保留以下效果所有 CSS 和任何脚本在保存之前都已运行。保留图像将是一个好处,但即使它们丢失但带有占位符以便保留布局也很好。
问题是我无法重新加载或重新查询任何资源文件 (JS/CSS)。字体并不重要。
这意味着生成的 HTML 不能引用外部文件。这甚至可以仅使用 JavaScript 实现吗?
编辑:
1) 这需要是使用 JavaScript 的编程解决方案,而不是浏览器 UI 解决方案。
【问题讨论】:
-
我想您可以对所有外部资源发出 AJAX 请求,然后在输出 html 字符串之前“排列”它们。您甚至可以找到一个 js 库来对图像进行 base64 编码以内联它们。不过,似乎有很多代码/工作。
-
不幸的是,我无法发出 AJAX 请求,因为我无法假设如果页面受到某种类型的登录保护,我仍然会有一个有效的会话。我需要一个解决方案,从字面上获取页面中的内容并保留它。有没有办法自省每个元素的当前状态并在将其从 DOM 中转储后装饰 HTML 以保持布局完整?
-
您只是想保留视觉外观吗?或者,还有完整的交互性(例如 javascript)?前者比后者更有可能。
-
@Whoookie:他的意思是在捕获页面时而不是在加载页面时发出 AJAX 请求。基本上找到所有的 css 文件并读取它们的内容并将它们粘贴到一个大的
<style>块中。
标签: javascript html dom