7

I have a problem when capture screen with html2canvas of html2canvas.hertzen.com, when I capture Map of google map in my page I can't see map

My map

My capture

My code

html2canvas(document.body, {
    onrendered: function(canvas) {
        document.body.appendChild(canvas);
    }
});

Anyone got a tip? Thanks

Adam Azad
  • 11,171
  • 5
  • 29
  • 70
HoangHieu
  • 2,802
  • 3
  • 28
  • 44

2 Answers2

7

The following works for me for Chrome and Firefox:

html2canvas(document.body, {
      proxy: "server.js",
      useCORS: true,
      onrendered: function(canvas) {
        document.body.appendChild(canvas);
      }
    });

where server.js is https://github.com/niklasvh/html2canvas-proxy-nodejs There are other proxies available for PHP and Python that I haven't tried yet. I cannot post both but if you google "html2canvas proxy" you'll be able to find the others if you need them.

HoangHieu
  • 2,802
  • 3
  • 28
  • 44
mbailey
  • 86
  • 5
  • I use html2canvas (from html2canvas.hertzen.com) to capture screenshot. I got this strange error like this: The code of my webpage is put on one host, say Host A. If my webpage contains an image on another host, say Host B, then I hit this error: Cross-origin image load denied by Cross-Origin Resource Sharing policy However, the confusing part is that if Host B is facebook (my image is a direct link to facebook https://fbcdn-profile-a.akamaihd.net/hprofile-ak-ash4/372701_100000684388457_1551561655_q.jpg) then the error disappear. – HoangHieu Aug 04 '13 at 09:12
  • My function html2canvas([document.body], { useCORS : true, logging : true, onrendered : function(canvas) { document.body.appendChild(canvas); var myImage = canvas.toDataURL("image/png"); window.open(myImage); } Anyone got a tip? Tks – HoangHieu Aug 04 '13 at 09:14
  • Check out this issue on the html2canvas github issue page, it should help you out: https://github.com/niklasvh/html2canvas/issues/248 – mbailey Aug 06 '13 at 16:08
0
  html2canvas(document.body, {
      proxy: "/my-proxy",
    }).then((canvas) => {
       document.body.appendChild(canvas);
    });

IMPORTANT: Don't add useCORS: true if you using proxy: "/my-proxy" setting.

The plugin will send the request in the next format

https://your-site.com/my-proxy?url=https://path-to-image.jpg&responseType=blob

More information about the proxy server is available here.

Stanislav Ostapenko
  • 1,122
  • 8
  • 14