oImg.setAttribute('width', '1px');
px
ist nur für CSS. Benutze das eine oder das andere:
oImg.width = '1';
um eine Breite über HTML festzulegen, oder:
oImg.style.width = '1px';
um es durch CSS einzustellen.
Beachten Sie, dass alte Versionen von IE kein richtiges Image erstellen document.createElement()
und alte Versionen von KHTML keinen richtigen DOM-Knoten mit erstellen. new Image()
Wenn Sie also vollständig abwärtskompatibel sein möchten, verwenden Sie Folgendes:
// IEWIN boolean previously sniffed through eg. conditional comments
function img_create(src, alt, title) {
var img = IEWIN ? new Image() : document.createElement('img');
img.src = src;
if ( alt != null ) img.alt = alt;
if ( title != null ) img.title = title;
return img;
}
Seien Sie auch etwas vorsichtig, document.body.appendChild
wenn das Skript ausgeführt wird, da sich die Seite gerade im Laden befindet. Sie können mit dem Bild an einem unerwarteten Ort oder einem seltsamen JavaScript-Fehler im IE enden. Wenn Sie es beim Laden hinzufügen müssen (aber nachdem das <body>
Element gestartet wurde), können Sie versuchen, es am Anfang des Körpers mit einzufügen body.insertBefore(body.firstChild)
.
Um dies unsichtbar zu tun und das Bild dennoch in allen Browsern zu laden, können Sie <div>
als erstes Kind des Körpers ein absolut positioniertes Bild außerhalb der Seite einfügen und alle Tracking- / Preload-Bilder einfügen , die dort nicht sichtbar sein sollen .