HTML2Canvas代码在IE 11上无法工作

4

我希望使用html2canvas库来制作一个div的图像并将其放置在另一个div中。到目前为止,它在Safari、Chrome和Firefox中运作得非常好,但在IE(我现在只关心11版本)中不起作用。

我正在使用来自另一个Stackoverflow问题的jsfiddle代码进行应用:

var aaaDiv=document.getElementById('aaa');
var ttDiv=document.getElementById('tt');

html2canvas(aaaDiv).then(function(canvas) {
// assign id:avatarCanvas to canvas 
canvas.id='avatarCanvas';
// append canvas to ttDiv
ttDiv.appendChild(canvas);

});

https://jsfiddle.net/m1erickson/wtchz972/

我听说IE不喜欢'appendChild',但是我不确定该如何继续。


一个可能的重复问题:https://stackoverflow.com/questions/36831372/promise-is-undefined-in-ie - Wessam El Mahdy
2个回答

5

添加这两个JS文件 - 如果缺失或损坏,它将自动提供/替换Promise功能。

<script src="https://cdn.jsdelivr.net/npm/es6-promise@4/dist/es6-promise.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/es6-promise@4/dist/es6-promise.auto.min.js"></script> 

来源:Arthez 在 Roman Canlas 的帖子下发表的评论 & https://github.com/stefanpenner/es6-promise


3

appendChild函数与您遇到的问题无关。自IE6+以来,appendChild已得到支持。

通过查看html2canvas代码,该库恰好利用了Promises feature,但不幸的是,在任何版本的IE中都不被支持。

http://caniuse.com/#search=promises

(虽然在 Microsoft Edge 中受支持)


谢谢Roman!我使用了一个polyfill,现在它运行得非常好。我完全忘记了Promise功能。 - ktre7
非常欢迎ktre7,很高兴我能提供帮助。 - securecodeninja
你最终使用了哪个 polyfill?我在 IE11 上也遇到了 html2canvas 不工作的问题。canvas 未定义。 - TetraDev
@ktre7,你能提供你使用的 polyfill 吗? - Dev
@ktre7 你用了哪个 polyfill?谢谢。 - Sparks
你能提供这个问题的 polyfill 细节吗? - Sooraj Jose

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接