oImg.setAttribute('width', '1px');
px
é apenas para CSS. Use:
oImg.width = '1';
para definir uma largura por meio de HTML ou:
oImg.style.width = '1px';
para configurá-lo por meio de CSS.
Observe que as versões antigas do IE não criam uma imagem adequada com document.createElement()
, e as versões antigas do KHTML não criam um Nó DOM adequado com new Image()
, então se você quiser ser totalmente compatível com versões anteriores, use algo como:
// 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;
}
Também tenha um pouco de cuidado document.body.appendChild
se o script pode ser executado quando a página está no meio do carregamento. Você pode acabar com a imagem em um lugar inesperado ou um erro estranho de JavaScript no IE. Se você precisar adicioná-lo no momento do carregamento (mas depois que o <body>
elemento for iniciado), poderá tentar inseri-lo no início do corpo usando body.insertBefore(body.firstChild)
.
Para fazer isso de forma invisível, mas ainda com a imagem realmente carregada em todos os navegadores, você pode inserir uma posição absolutamente fora da página <div>
como o primeiro filho do corpo e colocar quaisquer imagens de rastreamento / pré-carregamento que você não deseja que sejam visíveis lá .