我使用html2canvas.js直接在用户浏览器上截取网页的"截图"。但是我发现它没有得到使用跨域参考的图像。另外,我也不能在服务器上设置跨域权限。
那我该怎么做呢?
html2canvas团队没有一个好的文档。因此,我必须做大量的研发工作来找到这个解决方案,因此,我在这里分享这些细节,以造福他人。
-
插件接受一个参数作为对象,它希望这个对象有一个属性"proxy"。你需要在这里指定代理服务的/模块名(和相对路径)。
-
使用这个值,插件形成一个URL: https://your.domain.com/yourPath/yourProxyService?url=https%3A%2F%2Fcrossdomain.com%2FImage.png&callback=html2canvas_0
-
当插件尝试使用新创建的URL访问该代理时,它期望JSONP格式的图像的base64值。例如:
html2canvas_0("数据:图像/png; base64, R0lGODlhQAAwAMQAAKioqICAgLKysm1tbWNjY8bGxpSUlHd3d9nZ2ePj48/Pz7y8vJ6enoqKillZWY6Nje3t7Q")
注:html2canvas_0
为URL
callback
"参数的值