Firefox Iframe问题

时间:2011-05-23 12:28:26

标签: javascript asp.net firefox cross-browser

FireFox显示弹出的打开或保存对话框。

<iframe id="appFrame" runat="server" style="height: 95%; width: 100%; border: 0px;
                    z-index: -123;"></iframe>

我正在使用iframe来显示word文档,

document.getElementById("ctl00_GridContentPlaceHolder_appFrame").src = "ResponseWriter.aspx?docid=" + docId + "&doctype=" + docType + "&type=" + type;

我正在调用ResponseWriter.aspx来编写它在IE中运行良好但不在Firefox中的字节,这是ResponseWriter.aspx的代码

        Response.ClearHeaders();
        Response.ClearContent();
        Response.AddHeader("MIME Type", type.Trim()); 
        Response.AppendHeader("content-disposition",
                "inline;attachment; filename=" + "Unknown." + docType);

        Response.AddHeader("Content-Length", _fileArray.Length.ToString());
        Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
        Response.ContentType = type.Trim();
        Response.BinaryWrite(_fileArray.ToArray());
        Response.End();

任何人都可以帮助我。

1 个答案:

答案 0 :(得分:2)

这可能是因为Office在IE中安装了一些钩子以支持“在浏览器中”查看Office文档,而Firefox,Chrome等只是将字节发送到Office应用程序。

如果没有看到“ResponseWriter.aspx”将字节发送到流的方式的更多细节以及您在Firefox中看到的行为,那么我现在无法猜到更多。

作为一个注意事项,您应该考虑使用request handler (.ashx)而不是.aspx页面 - 这样可以为这些类型的请求提供更清晰的模型,因为它不会占用大部分页面生命周期 - 周期。