下载PDF文件时触发Jquery

时间:2012-09-12 08:25:16

标签: ruby-on-rails-3 wkhtmltopdf wicked-pdf

我使用wicked_pdf插件生成pdf。当用户点击pdf链接时我正在显示消息和微调器,我想在生成pdf时将其隐藏并推送到浏览器进行下载/显示。我在body onload上添加了jquery代码,它不会执行。当pdf文件推送到浏览器时,还有其他方法可以触发jquery函数吗?

1 个答案:

答案 0 :(得分:1)

这是一个相当复杂的问题,但如果您愿意使用jQuery插件,可以很好地解决。 http://jqueryfiledownload.apphb.com/是一个插件,如果我理解正确的话,它可以完全满足您的需求。


我的前端代码如下所示

$.fileDownload('/Content/Print', {
    successCallback: function (url) {
        $("#PrintingMessage").dialog('close');
    },
    failCallback: function (responseHtml, url) {
        $("#PrintingMessage").dialog('close');

        if (responseHtml.indexOf('Error403') != -1) {
            $("#PrintingFailedMessage").html("Error 403.");
        } else if (responseHtml.indexOf('Error500') != -1) {
            $("#PrintingFailedMessage").html("Error 500.");
        }

        $("#PrintingFailedMessage").dialog({ modal: true });
    },
    httpMethod: "POST",
    data: $('#PublishForm').serialize()
});

我的后端在整个过程结束时这样做了。你必须自己翻译:)

Response.SetCookie(new System.Web.HttpCookie("fileDownload", "true") { Path = "/" });
return File(file, System.Net.Mime.MediaTypeNames.Application.Octet, filename);