Javascript: Obtenez l'URL d'image de fond de <div>

Comment puis-je obtenir l'URL d' background-image d'un élément <div> en JavaScript? Par exemple, j'ai ceci:

 <div style="background-image:url('http://www.example.com/img.png');">...</div> 

Comment obtenir l'URL de l' background-image ?

Vous pouvez essayer ceci:

 var img = document.getElementById('your_div_id'), style = img.currentStyle || window.getComputedStyle(img, false), bi = style.backgroundImage.slice(4, -1); 

Modifier:

Basé sur @Miguel commentaire ci-dessous, vous pouvez essayer ceci pour IE: –

 bi = style.backgroundImage.slice(4, -1).replace(/"/g, ""); 

DEMO FIDDLE

Essaye ça:

 var url = document.getElementById("divID").style.backgroundImage; alert(url.substring(4, url.length-1)); 

Ou, en utilisant le replace

 url.replace('url(','').replace(')',''); 

Juste pour ajouter à cela si quelqu'un d'autre a une idée similaire, vous pouvez également utiliser Regex:

 var url = backgroundImage.match(/url\(["|']?([^"']*)["|']?\)/)[1]; 

Cependant, il semble que la solution de @ Praveen fonctionne réellement mieux dans Safari et Firefox, selon jsPerf: http://jsperf.com/match-vs-slice-and-replace

Si vous souhaitez tenir compte des cas où la valeur inclut des guillemets mais ne sait pas s'il s'agit d'un devis double ou unique, vous pouvez:

 var url = backgroundImage.slice(4, -1).replace(/["|']/g, ""); 

Tout d'abord, vous devez retourner votre contenu image d'arrière-plan:

 var img = $('#your_div_id').css('background-image'); 

Cela renverra l'URL comme suit:

"Url (' http://www.example.com/img.png ')"

Ensuite, vous devez supprimer les parties non recherchées de cette URL:

 img = img.replace(/(url\(|\)|")/g, '');