我正在尝试使用html2canvas
(http://html2canvas.hertzen.com)截取包含谷歌地图视图的页面的屏幕截图,但我遇到了一个问题,即生成的屏幕截图是白色的,除了标记。(可能)使问题复杂化的是我正在(试图)创建一个 React 应用程序。
我使用此代码截取屏幕截图:
takeScreenshot = () => {
let googleMapsView = document.querySelector('.google-map');
html2canvas(googleMapsView).then((canvas) => {
let imgData = canvas.toDataURL('image/png');
console.log(imgData);
});
}
上面的代码生成以下图像:
如您所见,它会生成屏幕截图并捕获标记和底部的“Map Data ©2018 Google”,但是生成的屏幕截图仍然是空白的。
在他们的 Github 上的文档中,我在这里看到了一个预加载选项:https ://github.com/niklasvh/html2canvas/wiki/Documentation#preload-content
然而,这似乎已经从0.5.0 beta
版本库中删除了——它们现在在 中1.0.0 alpha
,所以回到这样一个过时的库并不是一个真正的选择。
如何告诉 html2canvas 在截屏之前等待 GMaps 组件被渲染?