如何保存动态更改(byjquery)的HTMLDOM?
我得到了一些不错的布局生成器,使用jquery动态表单和jqueryui功能来更改使用的元素数量、它们的css属性等。一切看起来都很好,但当前结果的表示存在一个问题。我想保存生成的HTMLDOM并以某种方式解析它(从DOM树中删除隐藏的元素等)。如何保存当前(修改过的)html+css?作为第一步,您可以使用如何保存动态更改(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
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,还有另一种方法
tsaixingwei提供的解决方案在小型DOM上运行良好,但当您拥有大型文档时,它将无法运行。我刚刚尝试了一份包含大约3万行的文档,不得不使用我刚才解释的方法。将其保存到哪里?到cookie?如果需要将其保存到文件,则可以使用Firebug。它还将显示JQury对dom树所做的更改?我的意思是,我可以创建js脚本吗?我可以使用node.js从命令行运行它,它可以执行html文件->html文件转换?我一直在考虑类似的问题,但任何走这条路线的人都应该知道。请特别参阅John Saunders的答案。良好的客户端JavaScript:此链接仍然有效,即使在Web存档上也有效;因此,它不依赖服务器端组件。