保存动态创建的页面的原始html

时间:2009-03-02 22:25:40

标签: php javascript jquery dynamic

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

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

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

3 个答案:

答案 0 :(得分:4)

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

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

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

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

答案 1 :(得分:1)

您当然可以从jQuery中返回innerHTML您可以选​​择的任何对象,尽管它似乎不是最佳方式(请参阅其他替代方案的答案)。

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

答案 2 :(得分:0)

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

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