Web 截图

Tags
webapiwebextensionapp
Created
Aug 29, 2019 2:28 AM

html2canvas:

  1. 获取元素样式
  2. 解析样式并将元素绘制在 canvas 中 // 不能规避 SOP

rasterizeHTML:

  1. 利用了<svg><foreignObject>
  2. 外部样式转化为内联样式
  3. 画在 canvase 中

捕获屏幕,写到 canvas:

  1. navigator.mediaDevices.getUserMedia // 捕获视频,有个选择器
  2. ctx.drawImage(video)

扩展 API:

  • browser.tabs.captureVisibleTab // 截图,没有选择器
  • chrome.desktopCapture // 捕获视频,有选择器,类似 getUserMedia, Firefox 不支持
  • ctx.drawWindow // 仅 Firefox 支持

WebView API:

服务端截图:

  • puppeteer: page.screenshot
SuperMade with Super