При щелчке по скриншоту веб-страницы мышь перестает работать - PullRequest
0 голосов
/ 16 июля 2011

Я разработал расширение Chrome, которое делает скриншоты веб-страниц.Я заметил, что когда я делаю скриншоты некоторых страниц, мышь на скриншоте исчезает.Поэтому я не могу знать, в каком месте произошел щелчок позже.

Как это можно решить?

Ответы [ 2 ]

4 голосов
/ 16 июля 2011

Вы должны нарисовать курсор мыши самостоятельно. Вот пример создания скриншота по щелчку мыши и рисования красного круга, где курсор был:

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 голос
/ 16 июля 2011

В Windows функция PrntScrn не захватывает мышь как часть снимка, и, похоже, нет способа заставить Windows включить его./ будет захватывать мышь. IrFanView - один.

но это не сработает, так как вы работаете над плагином для браузера.Возможно, вам придется использовать некоторый код для определения положения мыши и вручную вставить изображение мыши в этом месте в захваченное изображение.

...