Javascript 帆布不';不要打印我的图像

Javascript 帆布不';不要打印我的图像,javascript,node.js,canvas,socket.io,Javascript,Node.js,Canvas,Socket.io,当用户连接时,我尝试在画布上打印图像 我的代码: socket.on('load', function(x, y, img) { var playerimg = new Image(); playerimg.src = img; playerimg.onload = function() { context.drawImage(playerimg, x, y, 100, 100); } }); x、y和变量img都正常。 我可以c

当用户连接时,我尝试在画布上打印图像

我的代码:

  socket.on('load', function(x, y, img) {
     var playerimg = new Image();
     playerimg.src = img;
     playerimg.onload = function() {
        context.drawImage(playerimg, x, y, 100, 100);
     }
  });
x、y和变量img都正常。 我可以console.log每个值,它是正确的,但画布上什么也没有发生

非常感谢你的回答

编辑:

画布的宽度为100%,高度为100%。 X和Y等于0,0

画布和上下文是在以下内容之前定义的:

var canvas = document.getElementById("canvas");    
var context = canvas.getContext("2d");

控制台上的任何错误。我有一个更新功能,x和y都得到了很好的更新(每个玩家都能正确更改)。

画布是否足够大,可以容纳放置在(x,y)处的图像?如果(x,y)=(0,0)呢?控制台中有错误吗?画布上还有别的东西吗?上下文是否正确初始化?图像加载是否正确/正确的url(检查onerror事件)?代码太少,无法确定问题所在。似乎我从未进入playimg.onload函数。在playerimg的onerror事件中,出现:error{target:,isTrusted:true,currentTarget:,eventPhase:2,bubbles:false,cancelable:false,defaultPrevented:false,Composited:false,timeStamp:1133.215578,cancelBubble:false,originalTarget:}尝试将
playerimg
作为全局变量记录此
img
变量时,这真的是url字符串吗?