前端通过javascript或库把某个DIV中的内容生成/保存为图片的问题

目前项目有个需求,需要把当前页面中某个div中的内容,用户点击button后,可以保存为图片格式的需求。
通过搜索,找到HTML2canvas可以实现该功能,但html2canvas支持到ie9,但项目需要支持更低版本的浏览器。
不知道还有没有类似的库或方法,可以实现改需求,同时能兼容到ie的低版本浏览器

阅读 7.2k
7 个回答

古代人有电视看吗? 没有

更低版本的浏览器都不支持canvas,所以前端没办法做。

但是是有方法解决的,可以用headless浏览器在后端截图。
比如用chrome做的puppeteer

后端用node的话,几行代码就搞定了

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto('https://example.com');          // 打开网页
  await page.screenshot({path: 'example.png'});    // 得到截图

  await browser.close();
})();

然后将截图输出到前端就行了

如果是IE9以下,友好提示下载chrome。完美解决。。
具说网络说有个段子.
" 有个领导要求必须要在他的电脑上用IE8访问系统,
但他们的系统在IE8下,无法运行进来。然后技术人员折腾了一两个星期都没有解决。
最后他们在领导的电脑上面安装了一个chrome,只是把图标换成了IE的.完美 解决问题"

可以保存为图片格式

因为需要实现文件的存储和传输建议,还是在后端做这个需求

新手上路,请多包涵

,IE8这种掉时代浏览器也没几个人用,直接抛弃吧,没必要去折腾IE8

恩。。如果是IE9以下,友好提示下载chrome。完美解决。。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题