Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以使用JavaScript转储DOM并保留CSS效果和布局?_Javascript_Html_Dom - Fatal编程技术网

是否可以使用JavaScript转储DOM并保留CSS效果和布局?

是否可以使用JavaScript转储DOM并保留CSS效果和布局?,javascript,html,dom,Javascript,Html,Dom,我需要一种方法来获取已经加载到页面中的网页,并保存页面的完整DOM(作为HTML字符串),这样,如果我将HTML作为单个文件脱机加载,它将保留所有CSS的效果以及保存之前运行的任何脚本。保留图像是一个额外的好处,但即使丢失了图像,但保留了一个占位符,这样布局就可以了 问题是我不能重新加载或查询任何资源文件(JS/CSS)。字体并不重要 这意味着生成的HTML不能引用外部文件。仅仅使用JavaScript就可以做到这一点吗 编辑: 1) 这需要是一个使用JavaScript的编程解决方案,而不是浏

我需要一种方法来获取已经加载到页面中的网页,并保存页面的完整DOM(作为HTML字符串),这样,如果我将HTML作为单个文件脱机加载,它将保留所有CSS的效果以及保存之前运行的任何脚本。保留图像是一个额外的好处,但即使丢失了图像,但保留了一个占位符,这样布局就可以了

问题是我不能重新加载或查询任何资源文件(JS/CSS)。字体并不重要

这意味着生成的HTML不能引用外部文件。仅仅使用JavaScript就可以做到这一点吗

编辑:


1) 这需要是一个使用JavaScript的编程解决方案,而不是浏览器UI解决方案。

您可以将整个HTML和内联CSS存储为JavaScript中的变量(您编写)。也许您可以编写一些使用HTML5本地存储来存储外部JS/CSS资源的JS,并在稍后脱机加载页面时使用它们。

我想您可以对所有外部资源发出AJAX请求,然后在输出html字符串之前“排队”它们。您甚至可以找到一个js库来对图像进行base64编码并将其内联。但是似乎有很多代码/工作。请查看appcache?不幸的是,我不能发出AJAX请求,因为我不能假设如果页面由某种类型的登录进行保护,我仍然会有一个有效的会话。我需要一个解决方案,字面上采取什么是在网页上,并保留它。难道没有办法内省每个元素的当前状态,并在从DOM中转储HTML之后对其进行修饰,从而使布局保持完整吗?您只是想保留视觉外观吗?或者,完全的交互性(例如javascript)也是如此?前者比后者更可能。@Whookie:他的意思是在捕获页面时发出AJAX请求,而不是在加载页面时发出AJAX请求。基本上找到所有的CSS文件并读取它们的内容并粘贴到一个大的<代码> <代码>块中。我不认为这是一个尝试的答案,但我不会投票,因为我知道你没有足够的声誉来使用评论部分而不是…