【问题标题】:jQuery Thickbox with .ASHX image handler - shows garbage带有 .ASHX 图像处理程序的 jQuery Thickbox - 显示垃圾
【发布时间】:2009-07-26 15:24:18
【问题描述】:

我正在使用 .ASHX 处理程序从我的 ASP.NET 应用程序返回图像。当我使用浏览器直接点击网址时(示例):

 http://localhost/myapp/GetImage.ashx?key=12

它工作正常...图像显示在页面上。但是当我在Thickbox中使用相同的链接作为目标时......我明白了:

alt text http://franceschina.net/temp/thickbox.png

ASHX 的提炼版代码:


   byte[] img = (byte[])pp.PRODUCT_PHOTO1.ToArray();
   context.Response.ContentType = "image/JPEG";
   context.Response.OutputStream.Write(img, 0, img.Length);

知道我错过了什么吗?

【问题讨论】:

  • 我不完全确定你可以在本地做这种事情。它是否在错误控制台中抛出任何错误?你在网络服务器上试过了吗?

标签: asp.net jquery thickbox


【解决方案1】:

http://drupal.org/node/140371:

在Thickbox 模块中,主要的*.js 文件,thickbox.js 不考虑在drupal 中创建的图像url,例如通过 /image/view/2321/preview 而不是 /image.jpg(或 *gif 或 *png)。如果thickbox.js 在链接锚标记([a href ...] 标记)中没有看到文件名本身(gif、jpg、png、jpeg),它会将图像视为另一种不是图片。这会导致Thickbox 在您的页面顶部吐出可怕的垃圾,而不是酷炫的阴影盒(灯箱)效果。

看起来与您遇到的问题相同。

【讨论】:

  • 哇...干得好...这是正确的。我修改了thickbox中的这两行以添加“.ashx”扩展名,它可以工作!因为这是问题的真正答案,我会接受它......但我实际上不会实施这个解决方案(我将坚持使用 iFrame),因为我不想处理自定义厚盒脚本
【解决方案2】:

我最终使用ThickBox 的iframe 选项将我的图像加载到另一个页面。我不喜欢这个解决方案(它需要一个单独的页面和额外的代码来确定 iFrame 的最佳高度/宽度)......但它可以工作,我没有更多的时间来搞砸它

【讨论】:

    猜你喜欢
    • 2012-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-09
    • 2011-03-03
    相关资源
    最近更新 更多