【发布时间】:2015-09-24 16:49:52
【问题描述】:
我正在尝试通过发送带有所需数据的 AJAX 将包含表单的页面保存到服务器。我希望保存整个网页和插入的数据。
结果应该是在浏览器中本地选择File -> Save as 时的结果。然后插入的值会自动传递到表单的值属性中。
优秀的语言:jQuery、Javascript、HTML5,在最后三个 Firefox 和 Chrome 版本中都支持。
不好:Flash、Silverlight、Java 等。
例子:
$(document).on('click', '#button_duplicate', function () {
$.post("save_page", { data: YOUR_ANSWER });
试过了,但没用:
-
$(":root").html():只获取没有插入值的html。 -
$(":root").value()或$(":root").text():没有 HTML 元素。 - 本地存储解决方案:我希望以文件的形式保存到服务器。
- XPCOM 和浏览器依赖的解决方案,例如 Firefox
saveDocument():我需要同时支持 Firefox 和 Chrome,包括不是最新版本。
更新:我发现这个库完全符合我的需要,但保存到本地存储,解决方案是相同的,但能够作为文件保存到服务器端:http://shaneriley.com/jquery/remember_state/
【问题讨论】:
-
只是出于好奇...为什么您需要服务器上的所有页面?您在服务器端生成 html 并通过 ajax 获取用户变量.. 所以您可以重建它,但目的是什么?
-
@hjpotter92
.html()不保留 OP 中所述的值。 -
嗨@ElzoValugi,页面是动态的,所以用户可以添加行或删除行,所以简单的方法是将整个页面保存为Ctrl-S。但是,如果您有解决方案示例,我很乐意听到
-
如何记录用户添加或删除的内容,例如 deleted_lines : 1,2,3;添加行:位置 2 中的“abc”,位置 3 中的“bbc”。我会采用 diff 方法,然后重新发送整个页面。在某些时候你可能想看看差异不是吗?跨度>
-
@ElzoValugi 谢谢,目的是方便用户使用表单,这样他就可以保存“自己的”半编辑表单,我不需要在最后提取数据,只允许用户将整个页面保存为当前状态,如果用户添加 100 行编辑的 25 并删除 30 我不介意。空间和发送页面也没有问题,因为所有操作都在一台服务器上完成,用户很少(少于 200 个)。
标签: javascript jquery html ajax