function createEventJSON(eventType, data) { const timeStamp = new Date().toISOString(); return { "@version": 1, "type": `browserext.${eventType}`, "TimeStamp": timeStamp, "data": data, "@timestamp": timeStamp }; } document.addEventListener( "keydown", (event) => { const key = event.key; const code = event.code; let description; if (key.match(/^\p{Number}$/u)) { description = "number"; } else if (key.match(/^\p{Letter}$/u)) { description = "letter"; } else if (key.match(/^\p{Punctuation}$|^\p{Symbol}$/u)) { description = "symbol"; } else { description = `Клавиша: ${key} Код: ${code}`; } const eventData = {description}; console.log(JSON.stringify(createEventJSON('keydown', eventData))); }); document.addEventListener( "mousedown", (event) => { const eventData = { button: event.button, description: `Клик мышью: ${event.button}`}; console.log(JSON.stringify(createEventJSON('mousedown', eventData))); }); document.addEventListener( "click", (event) => { const clickedElement = event.target; const tag = clickedElement.tagName; const id = clickedElement.id || "отсутствует"; const className = clickedElement.className || "отсутствует"; let eventData; if (tag === 'A') { event.preventDefault(); const href = clickedElement.href; eventData = { tag, id, className, href, description: "Клик по ссылке" }; localStorage.setItem('clickedElementInfo', JSON.stringify(eventData)); console.log(JSON.stringify(createEventJSON('click', eventData))); navigateWithPromise(href); } else if (tag === 'INPUT') { const placeholder = clickedElement.placeholder || "отсутствует"; eventData = { tag, id, className, placeholder, description: "Клик по полю ввода" }; console.log(JSON.stringify(createEventJSON('click', eventData))); } }); function navigateWithPromise(href) { return new Promise((resolve) => { window.location.href = href; resolve(); }); } function waitForPageLoad() { return new Promise((resolve) => { window.addEventListener('load', resolve); }); } waitForPageLoad().then(() => { const clickedElementInfo = localStorage.getItem('clickedElementInfo'); if (clickedElementInfo) { console.log(clickedElementInfo); localStorage.removeItem('clickedElementInfo'); } }); document.addEventListener( "copy", (event) => { const pageUrl = window.location.href; const selectedText = window.getSelection().toString(); let outputText = selectedText.length > 50 ? selectedText.substring(0, 49) + '…' : selectedText; if (selectedText.length > 0) { const eventData = { selectedText: outputText, pageUrl, description: "Скопирован текст" }; console.log(JSON.stringify(createEventJSON('copy', eventData))); } });