javascript - 单击网页屏幕截图时鼠标消失

标签 javascript canvas google-chrome-extension screenshot webpage-screenshot

我开发了一个 Chrome 扩展程序,可以截取网页屏幕截图。我注意到,当我对某些页面进行屏幕截图时,屏幕截图中的鼠标消失了。因此我无法知道稍后点击发生在哪个地方。

如何解决这个问题?

最佳答案

您需要自己绘制鼠标光标。以下是单击鼠标进行屏幕截图并在光标所在位置绘制红色圆圈的示例:

content_script.js:

window.addEventListener("click", function(event) {
    chrome.extension.sendRequest({x: event.x, y: event.y});
});

背景.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>

关于javascript - 单击网页屏幕截图时鼠标消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6713096/

相关文章:

javascript - NaN 问题 - 无法在 Jquery 中显示数字

Java AWT 重量级 Canvas

javascript - Chrome 扩展 : Programmatically setting browser action icon causes the icon to pixelate

javascript - Google Chrome 扩展程序的 storage.sync 上出现 QUOTA_BYTES_PER_ITEM 错误

javascript - 执行 selenium webdriver 自动化时无法选中复选框

javascript - 如何为这种情况编写正则表达式

javascript - 使用 drawImage 将加载的图像淡化到 Canvas 中

google-chrome-extension - 创建 chrome 扩展后无法访问 popup.js 文件

javascript - IE9 不反射(reflect) javascript 对页面的更改

javascript - GetImageData 和多个图像