在IE6中以javascript打开base64 PDF

时间:2011-05-03 19:52:06

标签: javascript flex data-uri

在javascript中,我有一个变量,它在base64中保存pdf(pdf在flex中生成并传递给js)。我想在浏览器中打开它(即我希望浏览器显示打开/保存对话框,让用户打开或保存pdf)。

我使用的数据URI在某些浏览器中运行良好,但在IE 6/7中不受支持:

function getPdf(pdf) {
    window.open("data:application/pdf;base64," +pdf);
}

如何在IE6和7中打开此PDF?我已经读过MHTML作为数据uri的替代品,但我不认为它可以做我需要的,或者可以吗?现在我只需要打开pdf,但将来我可能还需要添加对xls(MS Excel)文件的支持。目前我正在使用Flash的Filereference.save让用户将pdf保存到磁盘然后他可以打开它,但是客户端坚持要让用户自动打开它而不是强迫他先保存它。 / p>

2 个答案:

答案 0 :(得分:1)

如果没有将其发送到服务器并重定向到响应页面,这在IE中是不可能的。如果您正在生成PDF,则应该为IE生成相应的HTML。

答案 1 :(得分:0)

您可能需要考虑这种替代方法:让Flex将PDF文件发送到服务器,然后在页面上有一个iframe自动从服务器加载。这是解决IE6问题的一种方式。