Javascript: obtenha o URL da imagem de plano de fundo de

Como obtenho o URL da background-image de um elemento

em JavaScript? Por exemplo, eu tenho isso:

 
...

Como eu poderia obter apenas a URL da background-image ?

Você pode tentar isto:

 var img = document.getElementById('your_div_id'), style = img.currentStyle || window.getComputedStyle(img, false), bi = style.backgroundImage.slice(4, -1).replace(/"/g, ""); 
 // Get the image id, style and the url from it var img = document.getElementById('testdiv'), style = img.currentStyle || window.getComputedStyle(img, false), bi = style.backgroundImage.slice(4, -1).replace(/"/g, ""); // Display the url to the user console.log('Image URL: ' + bi); 
 

Tente isto:

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

Ou, usando replace

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

Apenas para adicionar a isso, caso alguém tenha uma idéia semelhante, você também pode usar o Regex:

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

No entanto, parece que a solução @ Praveen realmente funciona melhor no Safari e Firefox, de acordo com jsPerf: http://jsperf.com/match-vs-slice-and-replace

Se você deseja contabilizar os casos em que o valor inclui cotações, mas não tem certeza se é uma cotação dupla ou simples, você pode fazer:

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

Primeiro de tudo você precisa retornar o seu conteúdo de imagem de fundo:

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

Isso retornará o URL da seguinte maneira:

“url (‘ http://www.example.com/img.png ‘)”

Então você precisa remover as partes indesejadas deste URL:

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