Como html2canvas e html2canvas.svg são agrupados como UMD, window.html2canvas será indefinido em aplicativos que usam um carregador de módulo.
Como resultado, você obtém um
"Incapaz de obter a propriedade 'svg' de referência indefinida ou nula"
erro no IE, sempre que tenta usar tecido.
Uma solução alternativa para a AMD:
require(["html2canvas", "html2canvas.svg"], function(html2canvas, svg) {
window.html2canvas = {
svg: svg
};
E se você estiver usando babel / es6:
import html2canvas from 'html2canvas';
window.html2canvas = {
svg: html2canvas.svg
};
Tentei fazer isso e estou recebendo uma imagem em branco ... alguma idéia do que pode estar causando isso?
Estou usando a versão 0.5.0-beta4. e fazendo:
html2canvas(captureTarget, {
allowTaint: true
}).then(canvas => {
let imagex64 = canvas.toDataURL(); });
quando eu exibo essa imagem está em branco.
Tive o mesmo problema no MSIE 11.1, mas isso não acontece no Chrome.
Uma variante da solução alternativa de nearwood interrompe o erro, mas os SVGs não são renderizados corretamente:
import * as html2canvas from 'html2canvas';
(window as any).html2canvas = {
svg: html2canvas.svg
};
@niklasvh , por que você fechou isso? É o pensamento fixo? Não vejo nenhum commit que faça referência a esse problema: você tem um link para o que corrigiu isso no Chrome, para que eu possa dar uma olhada por que ele ainda está quebrado no MSIE?
Comentários muito úteis
Como resultado, você obtém um
erro no IE, sempre que tenta usar tecido.
Uma solução alternativa para a AMD: