我正在编写一个允许用户编辑日历,其描述和其他一些内容的应用程序。我正在使用jquery,php和mysql。每次用户进行更改时,它都会异步更新数据库。

我想让他们选择将他们制作的内容转换成PDF格式。有没有办法可以在用户进行更改后向我的服务器发布页面的原始html?

我可以在服务器上仅使用php重新生成页面,但如果可能的话,这种方式会更容易。

有帮助吗?

解决方案

您可以使用它来获取页面的大部分HTML:

var htmlSource = document.getElementsByTagName('html')[0].innerHTML;

但是它缺少打开和关闭的HTML标签和doctype,这对你来说可能无关紧要,因为你可以很容易地在服务器上重新创建它。

我假设你可以使用你已经用过的相同的AJAX,一旦你抓住它就将 htmlSource 发送到服务器。

其他提示

你当然可以从jQuery返回 innerHTML 你可以选择的任何对象,虽然它似乎不是最好的方法(参见其他替代方案的答案)。

注意 XSS攻击。如果您只是在没有检查它的情况下来回运行HTML,那么您将面临重大风险。

从服务器重新生成页面将是您最好的选择。要获得良好的下载体验,您需要能够发送内容类型和大小的标题。

要回答您的问题,我会使用输出缓冲来捕获脚本的输出,然后使用许多可用于将HTML转换为PDF的工具之一。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top