oImg.setAttribute('width', '1px');
px
dotyczy tylko CSS. Użyj:
oImg.width = '1';
aby ustawić szerokość za pomocą HTML lub:
oImg.style.width = '1px';
aby ustawić go przez CSS.
Zauważ, że stare wersje IE nie tworzą właściwego obrazu z document.createElement()
, a stare wersje KHTML nie tworzą odpowiedniego węzła DOM z new Image()
, więc jeśli chcesz być w pełni kompatybilny wstecz, użyj czegoś takiego:
// 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;
}
Zachowaj także ostrożność, document.body.appendChild
jeśli skrypt może zostać uruchomiony w trakcie ładowania strony. Możesz skończyć z obrazem w nieoczekiwanym miejscu lub dziwnym błędem JavaScript w IE. Jeśli chcesz mieć możliwość dodania go w czasie ładowania (ale po uruchomieniu <body>
elementu), możesz spróbować wstawić go na początku treści za pomocą body.insertBefore(body.firstChild)
.
Aby zrobić to w sposób niewidoczny, ale nadal mieć obraz faktycznie ładowany we wszystkich przeglądarkach, możesz wstawić absolutnie pozycjonowane poza stroną <div>
jako pierwsze dziecko ciała i umieścić tam wszystkie obrazy śledzące / wstępnie ładowane, których nie chcesz, aby były widoczne .