更新画布数据时的html2canvas

时间:2016-03-15 10:07:53

标签: javascript canvas html2canvas

plot array是一个全局变量。, 而console.log是onrendered函数内的canvas参数..,数据存在。但..当在函数外部记录..时,给出空数组

html2canvas(document.querySelector(".classone"),{
  onrendered:function(canvas){
      plot_array.push({canvasdata:canvas.toDataURL('image/png')});
  }
});

console.log(plot_array);
  

将绘图数组记录为空...   的 ...

2 个答案:

答案 0 :(得分:0)

这是因为渲染事件尚未传播。它是完全正常且可接受的行为:您希望仅在画布完成绘制时才填充此数组。

答案 1 :(得分:0)

欢迎来到js。 html2canvas是一个异步函数。在早期版本中,您必须提供一个回调函数作为参数,现在,它确实使用了Promises。在任何情况下,您只需在调用之前设置计数器变量,并在回调中增加它。一旦计数器达到要进行的调用次数,所有异步功能都完成,您可以继续进行ajax调用。因此,使用您的实际代码(使用旧版本的h2c)在循环之前:var rendered = 0;然后在循环中h2c(... onrendered: function(){...if(++rendered===calls.length){ajax()})})

Kaiido

回答