【问题标题】:dojo.io.iframe and download of Excel/PDFdojo.io.iframe 和 Excel/PDF 下载
【发布时间】:2010-12-31 14:17:48
【问题描述】:

我想使用 Dojo 按钮下载 Excel 或 PDF 文件。到目前为止,我已经设法通过在按钮的onClick 处理程序中调用dojo.io.iframe 来做到这一点。但是,这只会下载一次文件。任何后续调用都将被忽略。

这是电话:

function exportToExcel() {
    dojo.io.iframe.send({
        url: '/report/export',
        handleAs: 'xml',
        content: {
            __export: 'excel'
        }
    });
}

好像dojo.io.iframe不认为之前的请求已经完成了。

我做错了什么?

【问题讨论】:

    标签: javascript dojo io


    【解决方案1】:

    如果你使用dojo.io.iframe.send,那么响应应该是某种格式来告诉dojo请求已经完成。响应应包含在 HTML 文档的 <textarea> 元素中。与您的情况一样,响应是二进制流,因此 dojo 不知道请求是否完成。如果您没有指定timeout,dojo 将永远等待。

    要完成任务,您可以使用以下方法:

    var downloadPdfIframeName = "downloadPdfIframe"; 
    var iframe = dojo.io.iframe.create(downloadPdfIframeName);
    dojo.io.iframe.setSrc(iframe, url, true);
    

    【讨论】:

    • 这很好用。只要记住在你的根目录中添加一个空白.html,然后指向 djConfig.dojoBlankHtmlUrl = "./blank.html"。
    • blank.html 在 dojo 1.7.2 中是不需要的,我只是测试了一下; )
    • 使用这种方法如何通过回调检查响应中是否存在文件??
    • 效果很好!我不知道如何解决这个下载问题。适用于ie 9、10、11、chrome firefox。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-06
    • 1970-01-01
    • 1970-01-01
    • 2019-12-25
    • 1970-01-01
    • 1970-01-01
    • 2021-11-20
    相关资源
    最近更新 更多