如何保存动态更改(byjquery)的HTMLDOM?

如何保存动态更改(byjquery)的HTMLDOM?,jquery,html,dom,Jquery,Html,Dom,我得到了一些不错的布局生成器,使用jquery动态表单和jqueryui功能来更改使用的元素数量、它们的css属性等。一切看起来都很好,但当前结果的表示存在一个问题。我想保存生成的HTMLDOM并以某种方式解析它(从DOM树中删除隐藏的元素等)。如何保存当前(修改过的)html+css?作为第一步,您可以使用 var $alteredHtml = $('html').clone(); // use jQuery here to make alterations to the cloned htm

我得到了一些不错的布局生成器,使用jquery动态表单和jqueryui功能来更改使用的元素数量、它们的css属性等。一切看起来都很好,但当前结果的表示存在一个问题。我想保存生成的HTMLDOM并以某种方式解析它(从DOM树中删除隐藏的元素等)。如何保存当前(修改过的)html+css?作为第一步,您可以使用

var $alteredHtml = $('html').clone();
// use jQuery here to make alterations to the cloned html (parse it)

但要保存它,您需要一些服务器端技术,将其保存到文件或数据库中。

使用jquery的解决方案如下:

步骤1: 将整个(修改的)html转换为字符串表示形式:

var html = $('html').clone();
var htmlString = html.html();
步骤2: Base64对htmlString进行编码,并将其放入超链接内的datauri中:

var datauri = "data:text/html;charset=utf-8;base64," + $base64.encode(htmlString);
$("body").append("<a href='" + datauri + "'>Save</a>");
var datauri=“data:text/html;charset=utf-8;base64”,+$base64.encode(htmlString);
$(“正文”)。追加(“”);
注意:我在上面使用base64编码

步骤3: 右键单击上面动态创建的“保存”链接,然后从浏览器的关联菜单中选择“另存为”。修改后的html文件将保存为本地文件系统上的新html文档

我以前试过这个,效果很好。希望它对你和其他人都有用。
此解决方案不需要任何服务器端技术,也不需要Flash、Java小程序、Active-X控件、XPCOM或任何专有的客户端技术。唯一需要的是任何支持数据URI的(现代)浏览器。

如果使用chrome,还有另一种方法

  • 打开“开发工具”(windows上的trl+mayus+i)
  • 转到“元素”选项卡。您将看到实际的(修改的)DOM
  • 找到您感兴趣的节点(可能是HTML或BODY,但也可以是任何节点),右键单击并选择COPY AS HTML
  • 粘贴到您喜爱的文本编辑器并保存

  • tsaixingwei提供的解决方案在小型DOM上运行良好,但当您拥有大型文档时,它将无法运行。我刚刚尝试了一份包含大约3万行的文档,不得不使用我刚才解释的方法。

    将其保存到哪里?到cookie?如果需要将其保存到文件,则可以使用Firebug。它还将显示JQury对dom树所做的更改?我的意思是,我可以创建js脚本吗?我可以使用node.js从命令行运行它,它可以执行html文件->html文件转换?我一直在考虑类似的问题,但任何走这条路线的人都应该知道。请特别参阅John Saunders的答案。良好的客户端JavaScript:此链接仍然有效,即使在Web存档上也有效;因此,它不依赖服务器端组件。