Javascript 如何在通过socket.io事件设置后更改图像src?
使用socket.io,我使用Javascript 如何在通过socket.io事件设置后更改图像src?,javascript,sockets,socket.io,Javascript,Sockets,Socket.io,使用socket.io,我使用base64编码字符串将图像从服务器推送到客户端: socket.on('send_picture', function (data){ socket_data = (socket_data + data); document.getElementById('imgid').src = socket_data }) 如何在下一个socket.io事件中重置'imgid'的src?它可以正常工作一次,但在刷新页面之前不会显示新图像。我发现加载新图像内
base64
编码字符串将图像从服务器推送到客户端:
socket.on('send_picture', function (data){
socket_data = (socket_data + data);
document.getElementById('imgid').src = socket_data
})
如何在下一个socket.io事件中重置
'imgid'
的src?它可以正常工作一次,但在刷新页面之前不会显示新图像。我发现加载新图像内容最可靠的方法是每次创建一个新的图像元素,并用新的图像对象替换以前的图像对象。你可以这样做:
socket.on('send_picture', function (data){
socket_data = socket_data + data;
var oldImg = document.getElementById('imgid');
var newImg = new Image();
newImg.src = socket_data;
newImg.id = 'imgid';
oldImg.parentNode.replaceChild(newImg, oldImg);
});
你在使用数据URI吗?是的,我在使用。从服务器套接字第一次推送后,它工作正常,但之后它显示imgid.src URI已设置,并且不会随“socket_data”的新值动态更改。每次需要显示新图像时,您都可以通过用新对象替换img对象来解决此问题。这就是我在幻灯片中所做的,因为在一个图像上不断更改
.src
存在问题。如何在不刷新页面的情况下执行此操作?以编程方式使用var img=new image()
创建一个新图像对象,设置其.src
属性,然后使用将旧图像对象替换为新图像对象,将其插入页面。