Extension/borderify.js

88 lines
2.4 KiB
JavaScript

document.addEventListener( "keydown", (event) => {
const key = event.key;
const code = event.code;
if (key.match(/^\p{Number}$/u)) {
console.log(`Клавиша: number`);
}
else if (key.match(/^\p{Letter}$/u)) {
console.log(`Клавиша: letter`);
}
else if (key.match(/^\p{Punctuation}$|^\p{Symbol}$/u)) {
console.log(`Клавиша: symbol`);
}
else {
console.log(`Клавиша: ${key} Код: ${code}`);
}
});
document.addEventListener( "mousedown", (event) => {
console.log(`Клик мышью: ${event.button}`)
});
document.addEventListener( "click", (event) => {
const clickedElement = event.target;
const tag = clickedElement.tagName;
const id = clickedElement.id ? clickedElement.id : "отсутствует";
const className = clickedElement.className ? clickedElement.className : "отсутствует";
if (tag === 'A') {
event.preventDefault();
const href = clickedElement.href;
localStorage.setItem('clickedElementInfo', `Тэг: ${tag}, ID: ${id}, Класс: ${className} Ссылка: ${href}`)
navigateWithPromise(href);
}
else if (tag === 'INPUT') {
const placeholder = clickedElement.placeholder ? clickedElement.placeholder : "отсутствует";
console.log(`Тэг: ${tag}, ID: ${id}, Класс: ${className}, Плейсхолдер: ${placeholder}`)
}
});
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();
if (selectedText.length > 0) {
let outputText;
if (selectedText.length > 50) {
outputText = selectedText.substring(0, 49) + '…';
} else {
outputText = selectedText;
}
console.log(`Скопирован текст: ${outputText}, Скопировано из: ${pageUrl}`)
}
});