在知乎上面点击“建议反馈”的时候弹出的窗口可以把用户当前的网页截成图片,请问这个是怎么实现的呢?
1
SourceMan 2017 年 6 月 22 日
html2canvas
|
2
smallyin 2017 年 6 月 22 日 参考这里:
https://juejin.im/entry/58b91491570c35006c4f7fdf 有 2 种实现, 1 ) canvas 实现: https://github.com/niklasvh/html2canvas 2 ) svg 实现: https://github.com/cburgmer/rasterizeHTML.js 至于知乎,好像是 canvas |
3
ChefIsAwesome 2017 年 6 月 22 日
用 js 给网页截图这种事指不定哪天就给封了。毕竟不太安全。
|
4
smallyin 2017 年 6 月 22 日
@smallyin 简书也有一个「下载长微博图片」的功能,只能说和这个“有点像”
看了下,应该是在服务端存放的已经渲染好图片(并做了缓存?),下载那个按钮只是个静态图片的链接 |
5
mengxy 2017 年 6 月 22 日
@smallyin 简书那个和这个题目提到的是两类问题。简书的实现大概是在服务端使用 headless 浏览器,比如 phantomjs 或者新版本的 chrome 来渲染页面并截图,直接输出或者缓存后输出。楼主说的其实就是 html2canvas 这种浏览器内的截图。
|
7
jasonliao 2017 年 6 月 23 日
之前写了一个小 gist,使用 phantomjs 截取整个有延时加载资源的网页。https://gist.github.com/jasonliao/5260257293284b8dccc127fd5f9c2d0f
如果单纯的截取一屏,设定一下 `page.clipRect` 就可以了 http://phantomjs.org/screen-capture.html 这里也有 demo |