HTML / Javascript从img src属性中删除数据

时间:2012-05-02 17:47:29

标签: javascript html image

我的页面<img ... src=""/>

中有一个空的img

当事件发生时,我将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

3 个答案:

答案 0 :(得分:6)

从技术上讲,图像标记需要具有src属性,并且它应该不为空。但是,当{s}属性为空时,W3C specification不清楚如何处理这些情况。因此,每个浏览器处理这种情况的方式略有不同。

实际上,由于缺乏规范,可能会产生很多问题,你的问题只是其中之一。可以在here找到更详细的问题。

正如其他人所指出的那样,更可取的是通过CSS隐藏/显示图像(可见性:如果你想保持空间占用,则为none;如果你想让图像完全消失,则显示:none)。或者,您可以使用JS删除完整的图像标记,并在想要将其插回时创建新图像。

答案 1 :(得分:3)

我建议您更换新图像。在jQuery中,您可以执行以下操作:

$('#yourImage').replaceWith('&lt;img src="" id="yourImage" /&gt;');

答案 2 :(得分:3)

我通过吹码来处理这个问题并为我工作:

document.getElementById('tst').removeAttribute('src');
相关问题