Je suis en train de l'arrière-plan image de certains éléments en utilisant css (certains éléments ont pas d'image d'arrière-plan)Accès « background-image » propriété CSS dans les navigateurs WebKit
.file-type-pdf {
background-image: url("file-type-pdf.png");
}
Je puis essaie de déterminer en javascript si certains éléments ont une image d'arrière-plan ou non, comme suit
var style = YAHOO.util.Dom.getStyle(el, 'background-image');
console.log(style);
Cela fonctionne parfaitement dans FF, où les éléments sans image de fond retour « none » et des éléments avec une image de fond renvoient l'URL de l'image. Toutefois, en chrome et safari, le même code renvoie une chaîne vide pour les deux cas.
Si je devais définir une image d'arrière-plan dans le code javascript comme suit, chrome et safari puis retour l'URL de l'image « foo.jpg » correctement
YAHOO.util.Dom.setStyle(el, 'background-image', 'url("foo.jpg")');
var style = YAHOO.util.Dom.getStyle(el, 'background-image');
console.log(style);
Cependant, je ne peux pas comprendre pourquoi ces navigateurs ne peuvent pas accéder à l'arrière-plan-image définie par le code CSS
Notez également que cette syntaxe (peut-être plus familier à certains) produit les mêmes résultats (chaîne vide dans les navigateurs WebKit mais correct sur FF) ...
var style = window.getComputedStyle(el, null) || el.currentStyle;
console.log(style.backgroundImage);
Toute aide serait très appréciée
Si vous voulez être compatible avec plusieurs navigateurs, je vous suggère de consulter http://nb.io/hacks/csshttprequest. Il utilise cette propriété pour transférer des données à l'aide du schéma data: // URI. – Tom