当前位置: 首页 > 面试题库 >

如何使用JavaScript拍摄div的屏幕截图?

闾丘霖
2023-03-14
问题内容

我正在构建一个称为“ HTML测验”的东西。它完全在JavaScript上运行,非常酷。

最后,弹出一个结果框,显示“您的结果:”,它显示了他们花费了多少时间,他们得到了多少百分比以及他们从10个问题中得出了多少个问题。我想有一个按钮,上面写着“捕获结果”,并使其以某种方式截取屏幕截图或div,然后仅在页面上显示捕获的图像即可在其中单击鼠标右键并“将图像另存为”。

我真的很想这样做,以便他们可以与他人分享他们的成果。我不希望他们“复制”结果,因为他们可以轻松更改它。如果他们更改图片中的内容,那就好。

有谁知道做到这一点的方法或类似的方法?


问题答案:

不,我不知道“截屏”元素的方法,但是您可以做的是将测验结果绘制到canvas元素中,然后使用HTMLCanvasElement对象的toDataURL函数获取data:包含图像内容的URI。

测验完成后,请执行以下操作:

var c = document.getElementById('the_canvas_element_id');
var t = c.getContext('2d');
/* then use the canvas 2D drawing functions to add text, etc. for the result */

当用户单击“捕获”时,请执行以下操作:

window.open('', document.getElementById('the_canvas_element_id').toDataURL());

这将打开带有“屏幕截图”的新标签或窗口,允许用户保存它。没有办法调用“另存为”对话框,所以我认为这是您可以做的最好的事情。



 类似资料:
  • 我需要使用Sikuli的自动化,但我无法采取截图。问题是,当我点击“截屏”或“创建区域”时,IDE会被隐藏,但选择区域选项不会出现....

  • 问题内容: 我要实现的是从python中的任何网站获取网站截图。 环境:Linux 问题答案: 在Mac上,有webkit2png,在Linux+KDE上,可以使用khtml2png。我已经尝试了前者,并且效果很好,并且听说后者已投入使用。 我最近遇到了QtWebKit,它声称是跨平台的(我猜Qt将WebKit卷入了他们的库中)。但是我从未尝试过,所以我无法告诉您更多信息。 QtWebKit链接显

  • 问题内容: 使用Google的“报告错误”或“反馈工具”,您可以选择浏览器窗口的区域来创建屏幕截图,并在屏幕上提交有关错误的反馈。 他们是如何做到的?Google的JavaScript反馈API已从此处加载,它们对反馈模块的概述将演示屏幕截图功能。 问题答案: JavaScript可以读取DOM并使用来相当准确地表示该DOM 。我一直在研究将HTML转换为画布图像的脚本。今天决定将其实现为发送您所

  • 问题内容: 是否可以使用WebDriver在框架集中拍摄仅一帧(而不是整个窗口)的屏幕截图? 或者,是否可以为屏幕截图定义窗口坐标或之后裁剪图像? 问题答案: 这应该工作:

  • 我找了很多,但找不到解决办法。这里有一个类似的问题,在java中有一个可能的解决方案。 Python中有类似的解决方案吗?

  • 我目前正在尝试实现Ashot来为我当前的项目截图,它正在为桌面工作。 但我想知道如何在iOS和Android设备上实现它,互联网上没有太多信息。 我使用了以下视口,它正在为iPad截图: 屏幕截图FullPage=new AShot()。拍摄策略(ShootingStrategies.viewportRetina(100,0,0,2))。截图(司机); 但是我想知道如何使用给定的属性来为其他IOS