現象:<img src=""> 在 IE8 顯示「破碎圖片」圖標 (紅叉),現代瀏覽器不顯示。
<img id="myImg" src="" style="display: none;" />
<script>
function setImage(url) {
var img = document.getElementById('myImg');
if (url) {
img.src = url;
img.style.display = ''; // 或 'inline'/'block'
} else {
img.style.display = 'none';
}
}
</script>
src 會嘗試請求當前頁面 URL,返回 HTML 而非圖片,導致破碎圖標。display: none 使元素不佈局、不渲染,完全避免破碎圖標出現。src 後再 display='' 顯示。src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" (1x1 透明 GIF) 作為佔位符。onerror="this.style.display='none'" 失敗時自動隱藏。默認 display:none 是最簡潔、兼容性最好的解決方案。