Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Detect a img src change

I'am trying to detect if the source of a image is changed.

In my case the src is changed from jquery, and i have no right's to change the jquery file. So im trying to detect the src change from a img element.

I would like to see the source if the src is changed, just for testing

This is my current code:

var divimg = document.getElementById("img_div");
divimg.onchange = alert(divimg.getElementsByTagName('img')[0].src);

On the page load the alert react's and shows me the src, but not on a src change from jquery

like image 740
Sporting Gool Avatar asked May 18 '12 15:05

Sporting Gool


People also ask

How do I change the src of a photo?

To change the source or src of an image, you need to add an id or class to the image tag. You can get the image element using the name of the id or class , and you can change the source or src of the image using the src property.

What does the IMG src tag do?

The img src stands for image source, which is used to specify the source of an image in the HTML <img> tag.

Can img src be a URL?

There are two ways to specify the URL in the src attribute: 1. Absolute URL - Links to an external image that is hosted on another website. Example: src="https://www.w3schools.com/images/img_girl.jpg".


2 Answers

var img = document.querySelector("#img_div img"),
observer = new MutationObserver((changes) => {
  changes.forEach(change => {
      if(change.attributeName.includes('src')){
        console.dir(img.src);
      }
  });
});
observer.observe(img, {attributes : true});
like image 93
Dorian Andrés Avatar answered Sep 18 '22 19:09

Dorian Andrés


You could do it, however it would only be supported by new browsers that implement the DOM mutation events...

divimg.addEventListener("DOMAttrModified", function(event) {
    if (event.attrName == "src") {
       // The `src` attribute changed!
    }
});
like image 25
alex Avatar answered Sep 22 '22 19:09

alex