我正在尝试使用 Colorbox使用 Backbone.js 构建网站。我有一个像这样的简单图像标签:
<a class="gallery" href="/document/123"><img class="attachment-preview" src="/document/123" /></a>
url/document/123 显示(简单的 png)图像。 123是图片的id,服务器从DB中获取base64编码的图片,解码并显示。当我在浏览器中输入 example.com/document/123 时,它会正确显示图像,并且图像也可以使用我上面粘贴的标签正确显示。
但是,当我单击图像时,颜色框将打开,并且仅显示我猜测的二进制数据:
�wQH*��:�R��hc�:+{�����d��j���}7u($��@�����[�6Ym}���^(_�i�~�H�>�� etc..
所以我的问题是:怎么会这样?更重要的是:我该如何解决这个问题?欢迎所有提示!
最佳答案
Colorbox 会通过 url 的扩展名自动检测 href 目标的内容类型。例如,如果 url 目标是扩展名为 .jpg、.png 或 .gif 的文件,则颜色框会将内容显示为图像。网址“/document/123”即使返回图像也会被视为 html 内容。
您可以通过在初始化 colorbox 插件时添加 photo: true 属性来解决此问题。
$("a").colorbox({photo:true});
屏幕截图:
关于javascript - Colorbox 将图像显示为二进制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24301967/