mirror of
https://github.com/michivonah/click-guide.git
synced 2025-12-22 22:16:28 +01:00
create the screenshot functionality
This commit is contained in:
parent
3363ec9acf
commit
f32a3b56ce
4 changed files with 52 additions and 3 deletions
|
|
@ -2,6 +2,18 @@
|
||||||
|
|
||||||
chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
|
chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
|
||||||
console.log(message.action);
|
console.log(message.action);
|
||||||
|
if (message.action == "captureScreenshot"){
|
||||||
|
chrome.tabs.captureVisibleTab(null, { format: "jpeg" }, (dataUrl) => {
|
||||||
|
if (chrome.runtime.lastError) {
|
||||||
|
console.error("Error capturing screenshot: ", chrome.runtime.lastError);
|
||||||
|
sendResponse({ success: false, error: chrome.runtime.lastError });
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
sendResponse({ success: true, screenshot: dataUrl });
|
||||||
|
});
|
||||||
|
return true;
|
||||||
|
}
|
||||||
/*chrome.scripting.executeScript({
|
/*chrome.scripting.executeScript({
|
||||||
target: {tabId: tabs[0].id},
|
target: {tabId: tabs[0].id},
|
||||||
files: ['test.js']
|
files: ['test.js']
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,39 @@
|
||||||
// Script which is executed on all web pages
|
// Script which is executed on all web pages
|
||||||
|
|
||||||
//document.body.style.background = "blue";
|
//document.body.style.background = "blue";
|
||||||
document.body.style.border = "red 20px solid";
|
document.body.style.border = "red 20px solid"; // just to identify if the extension is active on this tab
|
||||||
console.log("Ich bin hier")
|
|
||||||
|
document.addEventListener('click', function(){
|
||||||
|
const element = event.target;
|
||||||
|
const elementText = element.textContent; // gets the text of the clicked element
|
||||||
|
const elementSelector = element.id; // the id of the clicked element, if exists (else its empty)
|
||||||
|
//console.log(elementText + ";" + elementSelector);
|
||||||
|
|
||||||
|
const rect = element.getBoundingClientRect(); // create a rectangle from the element
|
||||||
|
|
||||||
|
chrome.runtime.sendMessage({action: "captureScreenshot"}, (response) => {
|
||||||
|
if (response && response.success) {
|
||||||
|
const img = new Image();
|
||||||
|
img.src = response.screenshot;
|
||||||
|
img.onload = () => {
|
||||||
|
const pixelZoom = 350;
|
||||||
|
|
||||||
|
const canvas = document.createElement("canvas");
|
||||||
|
canvas.width = rect.width + pixelZoom;
|
||||||
|
canvas.height = rect.height + pixelZoom;
|
||||||
|
const ctx = canvas.getContext("2d");
|
||||||
|
|
||||||
|
ctx.drawImage(
|
||||||
|
img,
|
||||||
|
rect.left, rect.top, rect.width + pixelZoom, rect.height + pixelZoom, // source size
|
||||||
|
0, 0, rect.width + pixelZoom, rect.height + pixelZoom // result size
|
||||||
|
);
|
||||||
|
|
||||||
|
const croppedDataUrl = canvas.toDataURL("image/jpeg");
|
||||||
|
console.log(croppedDataUrl);
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
console.error("Error, while capturing the screenshot:", response.error);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,8 @@
|
||||||
"name": "Cl1ck Gu1de",
|
"name": "Cl1ck Gu1de",
|
||||||
"version": "0.0.2",
|
"version": "0.0.2",
|
||||||
"description": "A browser add-on which records the steps clicked on a page and generates a easy to understand guide from it.",
|
"description": "A browser add-on which records the steps clicked on a page and generates a easy to understand guide from it.",
|
||||||
"permissions": ["scripting", "activeTab", "downloads", "tabCapture", "tabs"],
|
"permissions": ["scripting", "activeTab", "downloads", "tabs"],
|
||||||
|
"host_permissions": ["<all_urls>"],
|
||||||
"background": {
|
"background": {
|
||||||
"service_worker": "background.js"
|
"service_worker": "background.js"
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
// Script for Popup
|
// Script for Popup
|
||||||
|
|
||||||
const toggleRecordingBtn = document.getElementById("toggleRecording");
|
const toggleRecordingBtn = document.getElementById("toggleRecording");
|
||||||
|
|
||||||
toggleRecordingBtn.addEventListener('click', () => {
|
toggleRecordingBtn.addEventListener('click', () => {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue