我开发了一个chrome扩展程序,它可以截取网页的截图。我注意到当我截取某些页面的屏幕截图时,屏幕截图中的鼠标消失了。因此,我无法知道以后点击发生在哪个地方。
如何解决这个问题?
答案 0 :(得分:4)
您需要自己绘制鼠标光标。下面是鼠标单击并绘制光标所在的红色圆圈的截图示例:
<强> content_script.js:强>
window.addEventListener("click", function(event) {
chrome.extension.sendRequest({x: event.x, y: event.y});
});
<强> background.html:强>
<html>
<head>
<script>
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
chrome.tabs.captureVisibleTab(null, {format:"png"}, function(dataUrl){
var img = new Image();
img.onload = function(){
var canvas = document.getElementById("canvas");
canvas.width = img.width;
canvas.height = img.height;
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0);
ctx.arc(request.x, request.y, 5, 0, Math.PI*2, true);
ctx.fillStyle = "rgb(255,0,0)";
ctx.fill();
chrome.tabs.create({url: canvas.toDataURL("image/png")});
};
img.src = dataUrl;
});
sendResponse({});
});
</script>
</head>
<body>
<canvas id="canvas"></canvas>
</body>
</html>
答案 1 :(得分:1)
在Windows上,PrntScrn函数不会将鼠标捕获为snapshopt的一部分,并且似乎没有办法让Windows包含它。
执行屏幕截图的外部应用可以/将捕获鼠标。 IrFanView就是一个。
但是这不起作用,因为你正在使用浏览器插件。您可能必须使用某些代码来检测鼠标位置,并手动将该位置的鼠标图像插入捕获的图像中。