如何替换因丢失或错误图像 src 而损坏的 HTML img

chi*_*rag 5 html javascript css angular

我有以下代码:

<img src="test.jpg" width="20" height="20"> some content here
Run Code Online (Sandbox Code Playgroud)

找不到图片时,显示如下:

在此处输入图片说明

此行为因浏览器而异。

我想显示透明框(纯白色)或一些好看的容器(空框),它们在所有浏览器中看起来都一样。我试过使用 alt 标签,但它不起作用。

我怎样才能做到这一点?

演示:示例

<img src="test.jpg" width="20" height="20"> some content here
Run Code Online (Sandbox Code Playgroud)

Hol*_*ger 7

您可以将error处理程序与onError. 但是请确保onError在调用后取消处理程序,因为如果您的备份映像丢失,这将导致服务器请求的无限循环——不好! 这样处理...

<img src="test.jpg" width="20" height="20" onerror="this.onerror=null;this.src='imageNotFound.gif';">
Run Code Online (Sandbox Code Playgroud)

通过设置this.onerror=null;,我们可以防止服务器请求的无限循环。然后imageNotFound.gif将显示用户如果图像是存在的。

POD(来源:MDN 网络文档:GlobalEventHandlers.onerror)......

我们在函数中设置 this.onerror=null 的原因是如果 onerror 图像本身产生错误,浏览器将陷入无限循环。