0

以下は、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);
        }

IEが画像を表示できるのに、クロムが画像ではなくバイト配列のみをロードするのはなぜですか?このバグを修正する方法は?

4

1 に答える 1

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

そう:

protected void Page_Load(object sender, EventArgs e)
        {
               Response.Clear();
               byte[] a = Common.GetImage();
               Response.BinaryWrite(a);
               Response.End();
        }

なんで?ASP.NET に、混乱を招く可能性のある他のジャンクがブラウザーに送信されていないことを確認するだけです。

于 2013-07-06T16:19:28.567 に答える