Html2canvas: window.html2canvas é indefinido se um carregador de módulo for usado

Criado em 24 mar. 2016  ·  4Comentários  ·  Fonte: niklasvh/html2canvas

Como html2canvas e html2canvas.svg são agrupados como UMD, window.html2canvas será indefinido em aplicativos que usam um carregador de módulo.

Comentários muito úteis

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
  };

Todos 4 comentários

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?

Esta página foi útil?
0 / 5 - 0 avaliações