javascript - 是否可以在网页中截取 iframe 的屏幕截图?
问题描述
我正在尝试截取网页中 iframe 的屏幕截图。在我的特定情况下,iframe 包含我的一个客户商店的街景。据我搜索和阅读,我没有找到任何解决方案。
我知道有类似Html2Canvas
and的 JavaScript 库Canvas2Image
,但它们无法捕获 iframe。
这是我正在研究的小提琴。
这些库可以与除 iframe 之外的每个 HTML 元素一起正常工作。
这是小提琴的 JavaScript:
$(function() {
$("#btnSave").click(function() {
html2canvas($("#widget"), {
onrendered: function(canvas) {
var context=canvas.getContext("2d"); // returns the 2d context object
// Convert and download as image
theCanvas = canvas;
document.body.appendChild(canvas);
// Convert and download as image
Canvas2Image.saveAsPNG(canvas);
$("#img-out").append(canvas);
}
});
});
});
是否存在其他捕获 iframe 的方法?是否有任何付费第三方服务可以做到这一点?
如果 iframe 无法使用,是否有任何替代方法可以实现我想要做的事情?
请告诉我是否需要更多信息。
任何帮助将不胜感激。
提前致谢
解决方案
如果您需要以编程方式进行捕获,您可以选择将 nodejs 与 puppeteer 一起使用,puppeteer 是一个使用 chromium 来模拟 Web 浏览器的库。我给你一个例子来捕捉屏幕:
const puppeteer = require('puppeteer');
async function run() {
let browser = await puppeteer.launch({ headless: false });
let page = await browser.newPage();
await page.goto('https://www.scrapehero.com/');
await page.screenshot({ path: './image.jpg', type: 'jpeg' });
await page.close();
await browser.close();
}
run();
这是我从中获得它的来源: https ://www.scrapehero.com/how-to-take-screenshots-of-a-web-page-using-puppeteer/
推荐阅读
- javascript - 返回不带引号的数组
- c - 在 linux 内核 2.6.26 中,我发现“#define atomic_read(v) ((v)->counter + 0)”,为什么是“+0”?
- c++ - WSAIoctl 函数控制 UDP 套接字的数据包发送速度
- java - 有没有办法将文件加载到java中的多个类而不必每次都调用它们?
- java - 如何将轴时间从“HH:mm:ss.000Z”转换为“HH:mm:ss”格式
- python - 无法在 docker 映像中导入 cx_Oracle
- python - 如何在sketch_rnn算法中修复'allow_pickle = False时无法加载对象数组'
- python - 在 Django 中,未加载 css 文件
- c# - 编辑 DataGridComboBoxColumn 中的单元格时如何获取当前单元格值?
- batch-file - netsh - 文件、目录或卷名的语法不正确