You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JS Blackjack游戏:不使用this.style.display='none'隐藏图片缺失图标

解决空src图片框显示断链图标的问题

针对你遇到的初始空src图片显示断链图标,且onerror隐藏后无法恢复的问题,给你两个简洁的解决方案,无需额外JS函数,减少HTML与JS的交互:

方案一:用CSS属性选择器控制显示

利用CSS的属性选择器,默认隐藏src为空的图片框,当src被设置为有效路径后自动显示:

/* 初始空src时隐藏 */
.imagebox[src=''] {
  display: none;
}

/* 当src有有效值时显示(根据布局调整display属性,比如inline-block/block) */
.imagebox[src]:not([src='']) {
  display: inline-block;
}

只需在样式文件或<style>标签中添加这段CSS,无需修改现有HTML和JS代码,浏览器会自动根据src属性的变化切换显示状态。

方案二:使用透明base64占位图作为初始src

将图片框的初始src设置为1x1的透明GIF(base64编码,无需额外文件),这样不会触发浏览器的断链图标,后续JS替换src时直接覆盖即可:

修改后的HTML:

<span> <!-- Players Cards -->
    <img class='imagebox' id='imagebox1' src='data:image/gif;base64,R0lGODlhAQABAIAAAMLCwgAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw=='>
    <img class='imagebox' id='imagebox2' src='data:image/gif;base64,R0lGODlhAQABAIAAAMLCwgAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw=='>
    <img class='imagebox' id='imagebox3' src='data:image/gif;base64,R0lGODlhAQABAIAAAMLCwgAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw=='>
    <img class='imagebox' id='imagebox4' src='data:image/gif;base64,R0lGODlhAQABAIAAAMLCwgAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw=='>
</span>

这个透明占位图体积极小,本地运行完全没问题,初始状态下图片框透明(看不到断链图标),当deal函数设置有效src后,正常显示卡牌图片。

这两个方案都不需要编写额外的JS函数来恢复显示,完全符合你要的简洁、低交互需求。

内容的提问来源于stack exchange,提问作者browny121

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 15:15:44