I would like to set an image as nothing. By doing src=""
many people say it can cause problems to browsers:
http://www.nczonline.net/blog/2009/11/30/empty-image-src-can-destroy-your-site/
so I am not sure if below can face to the same problem as setting src to empty:
<img id="myImage">
since there's no src attribute on this case.
So If I want to initially set an image to nothing, what's the best I can do?
Use the getAttribute() method to check if an image src is empty, e.g. img. getAttribute('src') . If the src attribute does not exist, the method returns either null or empty string, depending on the browser's implementation.
The <img> src attribute is used to specify the URL of the source image. Syntax: <img src="URL"> Attribute Values: It contains single value URL which specifies the link of source image. There are two types of URL link which are listed below: Absolute URL: It points to another webpage.
Use the getAttribute () method to check if an image src is empty, e.g. img.getAttribute ('src'). If the src attribute does not exist, the method returns either null or empty string, depending on the browser's implementation. Here is the HTML for the examples in this article. And here is the related JavaScript code.
Use the setAttribute () method to set the image's src attribute to an empty string. Alternatively, hide the image element. Here is the HTML for the examples in this article. And here is the related JavaScript code. We used the setAttribute method to set the src attribute of the image element to an empty string.
– Naftali Dec 5 '12 at 15:35 An empty string can actually be a valid src for an image, technically speaking it is not "removing" the src. Same as #, it would use the current URL plus the hash.
An empty string can actually be a valid src for an image, technically speaking it is not "removing" the src. Same as #, it would use the current URL plus the hash. Real example: lcamtuf.coredump.cx/squirrelYou would end up sending a request to the current URL. I would suggest using another approach.
Initialise the image as follows: src="//:0"
like here: <img id="myImage" src="//:0">
Edit: as per the comment of Alex below, using
//:0
apparently can trigger theonError
event of theimg
. So beware of this.Edit 2: From comment by Drkawashima: As of Chrome 61
src="//:0"
no longer seems to trigger the onError event.
Other solution
Alternatively, you can use a very small image until you actually fill the src
tag: like this image. With this 'very small image', you would then initialise the tag like so:
<img src="data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs%3D" width="0" height="0" alt="" />
source
Remove element from DOM
Alternatively, if you simply don't want the element to appear in the DOM, just use some JavaScript:
var myObject = document.getElementById('myObject');
myObject.parentNode.removeChild(myObject);
(as per this answer, using JavaScript's .remove()
function is not recommended, due to poor browser support in DOM 4)
Or just use some jQuery:
$("#myObject").remove();
Using a 1px transparent encoded image is an accepted solution (recommended by CSSTricks)
<img src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" alt="">
Note that I include an alt
set to an empty string, this is intentional to make screenreaders skip this empty image, but if you don't include the alt
attribute some screenreaders will read the src
value out loud.
PS: You might be confused later when you use DevTools and see these images showing up as 0 Byte Network requests, but don't be alarmed - that's just how DevTools works.
Just use a hash symbol #
. It's valid value for src
attribute. :)
https://stackoverflow.com/a/28077004/3841049
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With