【发布时间】:2019-05-20 08:05:53
【问题描述】:
我正在尝试使用 html2canvas 截取两个 div。我正在尝试使用 Promise 来实现这一点,这样一旦两个 html2canvas 调用都完成了,我就会在 then() 中运行我的 AJAX 调用。
我不知道我哪里出错了。我收到错误消息:
未捕获的类型错误:canvas.toDataURL 不是函数
$.when(
html2canvas(div_elem1),
html2canvas(div_elem2)
).then(function(canvas, canvas2) {
myImage1 = canvas.toDataURL();
//tried with this too, myImage1 = canvas[ 0 ].toDataURL();
myImage = canvas2.toDataURL();
var data = {
action: 'save_data',
a: $.extend({}, a),
b: $.extend({}, b),
base64data: {
x: myImage,
y: myImage1
},
};
$.post(ajaxurl, data, function(response) {
});
});
我正在使用 html2canvas 1.0.0-alpha.12
编辑:如果我在下面这样做,它会起作用。但这相对需要更长的时间
html2canvas(div_elem1).then(function(canvas) {
myImage1 = canvas.toDataURL();
html2canvas(div_elem2).then(function(canvas2) {
myImage = canvas2.toDataURL();
//ajaxcall...
【问题讨论】:
-
您使用的是什么版本的 h2c? Can't repro
-
@Kaiido html2canvas 1.0.0-alpha.12
-
那很奇怪。你能设置一个minimal reproducible example吗?
console.log(canvas, canvas2)输出什么? -
@Kaiido
console.log(canvas, canvas2)返回Promise {<pending>}__proto__: Promisecatch: ƒ catch()constructor: ƒ Promise()finally: ƒ finally()then: ƒ then()Symbol(Symbol.toStringTag): "Promise"__proto__: Object[[PromiseStatus]]: "resolved"[[PromiseValue]]: canvas Promise {<pending>} -
也许你的代码有别的东西,因为它对我有用:jsbin.com/gezuruh/edit?html,js,console,output
标签: javascript jquery promise html2canvas