从iframe强制pdf文件下载窗口

时间:2014-05-18 21:27:00

标签: javascript pdf iframe extjs

我正在尝试编写一个组件,这样我就可以通过POST请求下载pdf,最好不要更改网站或打开新窗口。

我已经设法通过一个新窗口下载它,但这不是我最终期望的。下面是强制提交到隐藏iframe的代码,但不幸的是,这并没有触发文件下载(我猜,浏览器会在iframe中处理pdf)。

我想知道如何解决这个问题。

    var iframe = Ext.get('pdfGeneratorIframe');
    if(!iframe){
        var body = Ext.getBody();

        // create a hidden frame
        iframe = body.createChild({
            tag: 'iframe',
            cls: 'x-hidden',
            id: 'pdfGeneratorIframe',
            name: 'pdfGeneratorIframe'
        });
    }

    var form = Ext.create('Ext.form.Panel', {
        standardSubmit: true,
        url: reportDetails.url,
        method: 'POST'
    });
    form.submit({
        //target: '_blank', // Avoids leaving the page.
        target: 'pdfGeneratorIframe',
        params: {htmlCode: fullHtmlToPrint,
            baseUrl: document.URL,
            filename: reportDetails.filename}
    });

1 个答案:

答案 0 :(得分:1)

它应该只取决于从服务器返回的http标头。 "内容 - 处置:附件"应该触发浏览器下载。