以下是来自Google Chrome的fancybox iframe的输出
以下是来自IE的fancybox ifrom的输出
以下是标记页面代码:
<script type="text/javascript">
$(document).ready(function () {
/*
* Examples - images
*/
$("[id*=img]").fancybox();
$('.fancyframe').fancybox({
'titlePosition': 'inside',
'type': 'iframe',
'width': 1024,
'height': 768
});
});
</script>
<a class="fancyframe" href="/imgLoader.aspx"><img src="/imgLoader.aspx"></a>
以下是imgLoader.aspx背后的代码
protected void Page_Load(object sender, EventArgs e)
{
byte[] a = Common.GetImage();
Response.BinaryWrite(a);
}
为什么chrome只加载字节数组而不是图像,而IE可以显示图像以及如何解决这个错误?
答案 0 :(得分:1)
因为您只是发送一个字节数组而不是告诉浏览器它是什么。
protected void Page_Load(object sender, EventArgs e)
{
byte[] a = Common.GetImage();
Response.BinaryWrite(a);
}
尝试添加:
Response.ContentType = "image/jpeg";
在致电Response.BinaryWrite之前
编辑:仅供参考,我通常也会在写出图片之前致电Response.Clear()
,然后在Response.End
之后致电。{/ p>
所以:
protected void Page_Load(object sender, EventArgs e)
{
Response.Clear();
byte[] a = Common.GetImage();
Response.BinaryWrite(a);
Response.End();
}
为什么呢?只是为了确保ASP.NET没有任何其他垃圾,它发送到浏览器可能会混淆它。