Wir verwenden js, um Png-Ersatz zu tun, und wir haben auch Ajax Updates für einige dieser Elemente. Wenn das Seitenfragment aktualisiert wird, geht der png-Fix verloren, da der png-Fix das dom durchläuft und png bg-Bilder ersetzt, wenn das Dokument geladen wird. Gibt es eine Möglichkeit, die Png-Ersetzung, wenn das Ajax-Update stattfindet, anstatt nur auf document.onload zu rendern? Wir benutzen jquery.Wie bekomme ich eine js png Fix zu arbeiten auf Ajax Anrufe
Antwort
Verwenden Sie Verhalten?
Wenn Sie mit iepngfix.htc, können Sie versuchen, das Verhalten Inline-Einstellung
var myEl = document.getElementById('inbound-ajax-element');
myEl.style.behavior = 'url(iepngfix.htc)';
http://abcoder.com/javascript/ie6-png-alpha-transparency-fix-for-dynamically-loaded-images-via-ajax/
Der Link oben ein Beispiel liefert, die dem Image der das PNG-Fix legt Onload-Ereignis, zum Beispiel:
new_img.onload = function(){
ti.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + timg_src + "', sizingMethod='scale')";
ti.setAttribute('src', 'blank.gif');}
Sie sollten einen Blick hier jQuery IE PNG Fix Plugin
jQuery(function($) {
$("img[@src$=png], #image-one, #image-two").pngfix();
});
Sie diese auf die Bilder laufen sollten Sie gerade geladen.
Der Grund, warum es verloren geht ist, dass der PNGfix ist nicht etwas, das kontinuierlich angewendet wird, wird beim Laden der Seite auf die vorhandenen Elemente angewendet, und wenn Sie einen von ihnen ändern oder neue PNGs erstellen wird der PNGfix nicht angewendet .
Also in Ihrem Javascript, wo Sie das Bild erstellen, müssen Sie es folgen, indem Sie den Pngfix auf das Element anwenden.
Wie dieses Javascript aussehen wird hängt davon ab, welche Art von PNGfix Sie verwenden. Hier finden Sie weitere Antworten, die Beispiele dafür geben, was Sie anwenden müssen, nachdem Sie das neue Bild hinzugefügt haben.
Welchen PNG-Fix verwenden Sie? Es gibt einige. – jimyi