将图像 src 设置为空

问题描述 投票:0回答:5

我想将图像设置为空。通过这样做

src=""
很多人说这会给浏览器带来问题:

http://www.nczonline.net/blog/2009/11/30/empty-image-src-can-destroy-your-site/

所以我不确定下面是否会遇到与将 src 设置为空相同的问题:

<img id="myImage">

因为这种情况下没有 src 属性。

那么,如果我想最初将图像设置为空,我能做什么最好?

html image src
5个回答
41
投票

最佳解决方案

按如下方式初始化图像:

src="//:0"
就像这里
<img id="myImage" src="//:0">

编辑:根据下面Alex的评论,使用

//:0
显然可以触发
onError
img
事件。所以要小心这个。

编辑2:来自Drkawashima的评论:从Chrome 61开始

src="//:0"
似乎不再触发onError事件


其他解决方案

或者,您可以使用非常小的图像,直到实际填充

src
标签:像此图像。使用这个“非常小的图像”,您可以像这样初始化标签:

<img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" width="0" height="0" alt="" />

来源


从 DOM 中删除元素

或者,如果您只是不想让元素出现在 DOM 中,只需使用一些 JavaScript:

var myObject = document.getElementById('myObject');
myObject.parentNode.removeChild(myObject);

(根据这个答案,不建议使用JavaScript的

.remove()
函数,因为DOM 4中的浏览器支持很差)

或者只是使用一些 jQuery:

$("#myObject").remove();


24
投票

使用 1px 透明编码图像是一种可接受的解决方案(CSSTricks推荐)

<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" alt="">

PS:稍后当 DevTools 将这些显示为零字节的网络请求时,不要感到困惑,这就是 DevTools 的工作原理,所有 imgs 都列为网络请求。

DS:包含

alt=""
,否则屏幕阅读器会大声读出
src


0
投票

只需使用哈希符号

#
。它是
src
属性的有效值。 :) https://stackoverflow.com/a/28077004/3841049


0
投票

如果 src 为空或空白,请使用此脚本设置默认图像

$(document).ready(function () {
   $('img').each(function () {
       if($(this).attr('src')=="") {
          $(this).attr('src', 'Images/download.jpg');
       }
   });
});

0
投票

当元素内没有 src 属性时,损坏的图像会随着 Chrome 消失。

<html>
<title></title>
<body>
// broken image
<img id='image_id' src=""> 

// does not show a broken image
<img id='image_id'>

</body>
</html>

我的解决方案是使用removeAttribute来消除损坏的图像。

<script>
var img_obj = document.getElementById('image_id);

img_obj.removeAttribute('src');
</script>
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.