我的页面<img ... src=""/>
当事件发生时,我将img属性设置为内联png数据:
<img ... src="data:image/png;base64,..."/>
当另一个事件发生时,我将src设置为无(删除img):myImg.src = ""
问题是:当我将src设置为空时,img不会重新加载。如果我隐藏了img,请等一段时间然后重新显示它有效,但这是一个丑陋的黑客......
P.S:我不想设置默认的'空白'图像我需要它真的是空白的(src =“”)。
编辑: 我的javascript:
biometria.setImage = function(png) {
if(png)
bioCanvas.src = 'data:image/png;base64,' + png;
else
bioCanvas.src = '';
};
Edit2:浏览器:Google Chrome 18.0.1025.162 Ubuntu 12.04
答案 0 :(得分:6)
从技术上讲,图像标记需要具有src属性,并且它应该不为空。但是,当{s}属性为空时,W3C specification不清楚如何处理这些情况。因此,每个浏览器处理这种情况的方式略有不同。
实际上,由于缺乏规范,可能会产生很多问题,你的问题只是其中之一。可以在here找到更详细的问题。
正如其他人所指出的那样,更可取的是通过CSS隐藏/显示图像(可见性:如果你想保持空间占用,则为none;如果你想让图像完全消失,则显示:none)。或者,您可以使用JS删除完整的图像标记,并在想要将其插回时创建新图像。
答案 1 :(得分:3)
我建议您更换新图像。在jQuery中,您可以执行以下操作:
$('#yourImage').replaceWith('<img src="" id="yourImage" />');
答案 2 :(得分:3)
我通过吹码来处理这个问题并为我工作:
document.getElementById('tst').removeAttribute('src');