Ответ 1
Я думаю, что вы хотите:
var img = new Image();
var div = document.getElementById('foo');
img.onload = function() {
div.appendChild(img);
};
img.src = 'path/to/image.jpg';
У вас уже есть загруженный объект изображения. Вы должны просто добавить его непосредственно в DOM, а не создать целый новый объект изображения с помощью innerHTML
.
Кроме того, использование +=
с innerHTML
очень расточительно, поскольку оно принимает все объекты, которые у вас уже есть, преобразует их в текст HTML, добавляет в этот текст и затем создает все новые объекты DOM - теряя все обработчики событий когда он создает новые объекты. Таким образом, более эффективно просто добавить новый объект DOM в набор существующего объекта DOM.
Кроме того, document.getElementById()
принимает id без #
перед ним.