← Назад в «Блог»
37

Копирование ID тренингов и уроков на Геткурс одной кнопкой

Устанавливаете любой виджет, который может добавлять 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);
  }
});
Полезно
1
Непонятно
Поделиться
Отправить
Линкануть
Вотсапнуть

Канал о фрилансе

Там я делюсь фишками о фрилансе: деньги, клиенты, автоматизация, фриланс. Раньше это был закрытый материал с платным доступом. Сейчас он открыт. Иногда подписчикам будет открываться платные материалы.

Подписаться
← Назад в «Блог»

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *