Что лучший код JavaScript должен создать img элемент

103
задан Devid Farinelli 14 February 2017 в 14:25
поделиться

8 ответов

oImg.setAttribute('width', '1px');

px для CSS только. Используйте также:

oImg.width = '1';

для установки ширины через HTML, или:

oImg.style.width = '1px';

для установки его через CSS.

Примечание, что старые версии IE не создают надлежащее изображение с document.createElement(), и старые версии KHTML, не создает надлежащий Узел DOM с new Image(), поэтому если Вы хотите быть полностью назад совместимым использованием что-то как:

// 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;
}

Также немного опасаться document.body.appendChild, если сценарий может выполниться, поскольку страница посреди загрузки. Можно оказаться с изображением в неожиданном месте или странной ошибкой JavaScript на IE. Если необходимо быть в состоянии добавить его во время загрузки (но после <body> элемент запустился), Вы могли попытаться вставить его в начале тела с помощью body.insertBefore(body.firstChild).

, Чтобы сделать это невидимо, но все еще иметь изображение на самом деле загружается во всех браузерах, Вы могли вставить absolutely-positioned-off-the-page <div> как первый ребенок тела и поместить любые изображения отслеживания/предварительной нагрузки, Вы не хотите быть видимыми там.

79
ответ дан Devid Farinelli 24 November 2019 в 04:20
поделиться
var img = new Image(1,1); // width, height values are optional params 
img.src = 'http://www.testtrackinglink.com';
49
ответ дан Jason Bunting 24 November 2019 в 04:20
поделиться
var img = document.createElement('img');
img.src = 'my_image.jpg';
document.getElementById('container').appendChild(img);
15
ответ дан Michael L Perry 24 November 2019 в 04:20
поделиться

jQuery:

$('#container').append('<img src="/path/to/image.jpg"
       width="16" height="16" alt="Test Image" title="Test Image" />');

я нашел, что это работает еще лучше, потому что Вы не должны волноваться о HTML, выходящем ни из чего (в котором нужно выполнить вышеупомянутый код, если бы значения не были трудно кодированы). Также легче читать (из перспективы JS):

$('#container').append($('<img>', { 
    src : "/path/to/image.jpg", 
    width : 16, 
    height : 16, 
    alt : "Test Image", 
    title : "Test Image"
}));
11
ответ дан Alexis Wilke 24 November 2019 в 04:20
поделиться

Только ради полноты, я предложил бы использовать InnerHTML путь также - даже при том, что я не назову его лучшим способом...

document.getElementById("image-holder").innerHTML = "<img src='image.png' alt='The Image' />";

Между прочим, innerHTML не это плохо

7
ответ дан Binny V A 24 November 2019 в 04:20
поделиться

Самый короткий путь:

(new Image()).src = "http:/track.me/image.gif";
4
ответ дан aemkei 24 November 2019 в 04:20
поделиться

Вам разрешают использовать платформу? jQuery и Прототип делают этот вид вещи довольно легким. Вот образец в Прототипе:

var elem = new Element('img', { 'class': 'foo', src: 'pic.jpg', alt: 'alternate text' });
$(document).insert(elem);
3
ответ дан swilliams 24 November 2019 в 04:20
поделиться

Как другие указали, разрешают ли Вам использовать платформу как jQuery, лучшая вещь сделать использовать его, поскольку он высоко, вероятно, сделает это самым лучшим способом. Если Нельзя использовать платформу тогда, я предполагаю, что управление DOM является лучшим способом сделать это (и по-моему, правильный способ сделать это).

0
ответ дан Leandro López 24 November 2019 в 04:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: