在IE中删除不存在的图像中的红色X.

时间:2010-04-07 17:54:13

标签: internet-explorer image

我有第3个网站(Confluence),它引用了通过登录保护的图像。

如果当前用户已登录,则会显示图像,如果不是,则图像URL将重定向到登录表单。

实施例

<img src="secure/myimage.gif" />

当您在浏览器中输入此网址时,会重定向到登录页面。

现在的问题:IE显示图像的可怕红色X图标,即使应该没有任何东西(如在Firefox中)。任何人都知道怎么解决这个问题?

3 个答案:

答案 0 :(得分:8)

使用onError事件设置默认图像。

这将在任何浏览器中运行。

FF中显示的空白图像是FF的怪癖,因为收到的文件不是应报告错误的图像。

答案 1 :(得分:2)

以下是一些解决方案:

  1. 将包含安全图像的页面重定向到登录表单
  2. 如果安全检查失败,图像服务将返回默认值。
  3. 将一个被黑客入侵的IE发送到您的客户端,其中红色X替换为您提及的Firefox之类的空白。

答案 2 :(得分:2)

我使用jQuery找到了一个很好的解决方案: 此脚本使用定义的占位符替换所有“已损坏”的图像。在IE / FF / Chrome中完美运行

<script type="text/javascript" lang="javascript">

jQuery(window).bind('load', function() {
jQuery('img').each(function() {
    if((typeof this.naturalWidth != "undefined" &&
        this.naturalWidth == 0 ) 
        || this.readyState == 'uninitialized' ) {
        jQuery(this).attr('src', 'placeholder.gif');
    }
}); 
})

</script>