将默认src设置为img元素

时间:2012-03-21 08:20:52

标签: asp.net

有些人通过以下方式将默认src设置为img元素:

<img src="foo.jpg" onerror="this.src='default.jpg'" />

我认为这不是最好的方法,因为在触发onerror事件时会发送额外的http请求,而我们的日志组件将记录毫无价值的错误消息。

我想我可以通过以下方式做到:

创建一个HttpHandler(.ashx)以将适当的图像发送到客户端。所以我可以在页面中写一个img:<img src=‘ImageHandler.ashx?id=foo.jpg’/>。应用程序将检查图像(foo.jpg)是否存在,然后决定发送foo.jpg或default.jpg。

是不是?你有更好的分辨率吗?

1 个答案:

答案 0 :(得分:1)

是的,有一种方法:

<object data="http://aaa.com/does-not-exist.png">
    <img src="http://aaa.com/content/img/so/logo.png">
  </object>

你应该如何使用浏览器兼容性来支持它。

另一个解决方案是:

<style type="text/css">
img {
   background-image: url('/images/default.png')
}
</style>

如果内部图像不存在,则执行外部。

在一个分子之后:这个问题在此之前被问到:

Inputting a default image in case the src attribute of an html <img> is not valid?