2012-05-02 67 views
7

删除数据我有一个空的IMG在我的网页<img ... src=""/>HTML/JavaScript的从IMG SRC属性

当我在IMG的属性设置为一个内联png格式的事件发生时的数据:

<img ... src="data:image/png;base64,..."/>

当另一个事件发生我设置src为没有(删除img):myImg.src = ""

问题是:img不会重新加载时,我将src设置为空。如果我隐藏img,请等待一段时间,再次显示它的工作原理,但这是一个丑陋的黑客...

PS:我不想设置默认的'空白'图像我需要它真的是空白的src =“”)。

编辑: 我的javascript:

biometria.setImage = function(png) { 
    if(png) 
     bioCanvas.src = 'data:image/png;base64,' + png; 
    else 
     bioCanvas.src = ''; 
}; 

EDIT2:浏览器:谷歌浏览器18.0.1025.162的Ubuntu 12.04

+1

你能证明你的JS代码? – Bongs

+0

抓住一个透明的1px/1px的base64代码,并使用它,也可能是about:blank,但我认为它会在某些浏览器中显示为不返回图像格式。 – GillesC

+0

你能分享你使用的脚本代码吗? – redlena

回答

6

从技术上讲,图像标记需要有一个src属性,它应该是不空着。但是,W3C specification不清楚如何处理src属性为空时的情况。因此,每个浏览器都以不同的方式处理这种情况。

实际上,由于缺少规范可能会产生很多问题,您只是其中之一。有关此问题的更详细信息,请参见here

正如其他人指出的那样,通过CSS隐藏/显示图像更为可取(可见性:如果要保留占用的空间,则显示为none;如果希望图像完全消失,则显示为none) 。或者,您可以简单地使用JS删除完整的图像标签,并在想要插入时创建新图像。

+0

谢谢,可见性:隐藏做了这项工作,即使是艰难的,它不显示IMG大纲(我可以忍受这一点)。 – islon

+1

@islon请注意,如果您将img设置为“display:none”或“visibility:hidden”,并且它具有有效的src,它仍会被下载! –

3

我建议你换一个新的图像。在jQuery的你可以这样做:

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

我处理由打击代码和工作这个问题对我来说:

document.getElementById('tst').removeAttribute('src'); 
+0

你的伎俩做的工作! – Ruben