dar*_*ryl 19 html javascript image
我只是想知道是否有更好的解决方案:
var img = new Image();
var div = document.getElementById('foo');
img.onload = function() {
div.innerHTML += '<img src="'+img.src+'" />';
};
img.src = 'path/to/image.jpg';
Run Code Online (Sandbox Code Playgroud)
理想方法:
console.log(img); // <img src="path/to/image.jpg" />
div.innerHTML += img;
Run Code Online (Sandbox Code Playgroud)
思考?
jfr*_*d00 40
我想你想要的是这个:
var img = new Image();
var div = document.getElementById('foo');
img.onload = function() {
div.appendChild(img);
};
img.src = 'path/to/image.jpg';
Run Code Online (Sandbox Code Playgroud)
您已经有一个已加载的图像对象.您应该直接将其附加到DOM中,而不是使用创建一个全新的图像对象innerHTML
.
另外使用+=
with innerHTML
是非常浪费的,因为它需要你已经拥有的所有对象,将它们转换为HTML文本,添加到该文本然后创建所有新的DOM对象 - 当它也创建新对象时丢失所有事件处理程序.这样,只需将新DOM对象添加到现有DOM对象集合上的方式就更有效了.
另外,在它前面document.getElementById()
没有一个id #
.