【问题标题】:Save entire HTML content with both form data and HTML to server?将包含表单数据和 HTML 的整个 HTML 内容保存到服务器?
【发布时间】: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


【解决方案1】:

我会这样做:

  • 客户端:保存/提交时
    • 在提交表单之前将整个文档/html 存储在隐藏的输入字段中
  • 服务器端:(使用 ASP/PHP 或 ...)
    • 将隐藏的输入保存到文件中
    • 循环表单字段并创建数据对象并保存到 file.json
      data: [{ id: "field1", value: "Arnold" },{...}]
    • 重新打开时,将数据对象传递/注入到 js sn-p 循环项目并重置值

其实原文件已经可以有js sn -p了,在保存file/file.json的时候,可以先将数据对象注入到主文件中再保存。 file.json 可以保存为“仅在需要数据对象的情况下”

【讨论】:

    猜你喜欢
    • 2017-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-19
    • 1970-01-01
    相关资源
    最近更新 更多