← Назад в «Блог»
Устанавливаете любой виджет, который может добавлять js-код на страницу. После в правый верхний угол добавляется кнопка, при клике на которую в ваш буфер обмена будут копироваться все айдишники тренингов и уроков.
// Создаем кнопку
const button = document.createElement('button');
button.textContent = 'Скопировать ID уроков';
button.style.position = 'fixed';
button.style.top = '40px';
button.style.right = '10px';
button.style.zIndex = '1000';
button.style.padding = '10px';
button.style.backgroundColor = '#4CAF50';
button.style.color = '#fff';
button.style.border = 'none';
button.style.cursor = 'pointer';
// Добавляем кнопку на страницу
document.body.appendChild(button);
// Функция для обновления текста кнопки
const updateButtonText = (text, isError = false) => {
button.textContent = text;
if (isError) {
button.style.backgroundColor = '#f44336'; // Красный цвет для ошибки
} else {
button.style.backgroundColor = '#4CAF50'; // Возвращаем зеленый цвет
}
};
// Функция для копирования ID уроков
button.addEventListener('click', () => {
updateButtonText('Собираем ID...');
// Находим все ссылки внутри li в списке с классом lesson-list
const links = document.querySelectorAll('.lesson-list li a, .training-row td a');
// Извлекаем ID из href и формируем строку
const ids = Array.from(links)
.map(link => {
const match = link.href.match(//id/(d+)/);
return match ? `${match[1]}` : null;
})
.filter(Boolean)
.join(', ');
if (ids) {
// Записываем IDs в текст кнопки
updateButtonText(ids);
// Копируем IDs в буфер обмена
navigator.clipboard.writeText(ids).then(() => {
updateButtonText('Скопировано!');
// Через 300мс возвращаем текст кнопки к исходному
setTimeout(() => updateButtonText('Скопировать ID уроков'), 300);
}).catch(err => {
updateButtonText('Ошибка копирования!', true);
// Через 300мс возвращаем текст кнопки к исходному
setTimeout(() => updateButtonText('Скопировать ID уроков'), 300);
});
} else {
updateButtonText('ID не найдены', true);
// Через 300мс возвращаем текст кнопки к исходному
setTimeout(() => updateButtonText('Скопировать ID уроков'), 300);
}
});
Канал о фрилансе
Там я делюсь фишками о фрилансе: деньги, клиенты, автоматизация, фриланс. Раньше это был закрытый материал с платным доступом. Сейчас он открыт. Иногда подписчикам будет открываться платные материалы.
Подписаться