Сидел чилил в оффтопике, и подумал, что неудобно каждый риз выходить на главную страницу оффтопика, перезагружать список, кликать на новую тему, слишком много действий, было бы славно переходить на новую тему оффтопика сразу с текущей, особенно полезен скрипт в пик нагрузки оффтопика как он работает: nen кнопка подгружается на любой теме из оффтопика(только оффтопик) если есть темы опубликованые позже текущей, при нажатии на кнопку вы переходите на следующую тему, если нет - ничего не происходит кнопка всегда в поле зрения, не нужно крутить страницу вверх скрины оцените мужики https://greasyfork.org/ru/scripts/487151-offtopiknext
good_players, не, оно поочередно перемещает, то есть если две темы новые выложили, оно сначало на первую а потом на вторую
правильно понимаю, отсортирую темы по дате создания условно ты открыл тему н.1, почитал ответил и было создано еще 3 темы теперь твоя тема сместилась в н.4 в списке н.1 н.2 н.3 Н.4 при нажатии на кнопку мы смещаемся в +1 и попадаем в н.3, верно? Если да, то расширение хорошее
эта же залупа, но для тем.вопросов // ==UserScript== // @name Temnext // @namespace http://tampermonkey.net/ // @version 2024-02-12 // @description next button // @author You // @match https://zelenka.guru/threads/* // @icon https://www.google.com/s2/favicons?sz=64&domain=zelenka.guru // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; // Your code here... // Функция для получения ID страницы из URL function getPageId() { var url = window.location.href; var matches = url.match(/\/threads\/(\d+)\//); if (matches && matches.length > 1) { return parseInt(matches[1]); } return null; } // Функция для выполнения запроса на страницу с более большим идентификатором function goToNextPage() { var currentPageId = getPageId(); if (currentPageId !== null) { fetch('https://zelenka.guru/forums/585/') .then(response => response.text()) .then(data => { var matches = data.match(/threads\/(\d+)\//g); var len = matches.length for (var i = 0; i < len; i++) { matches[i] = parseInt(matches[i].match(/\d+/)[0]); } for (var j = 0; j < len; j++) { var minNextPageId = Math.min(...matches); if (minNextPageId > currentPageId) { window.location.href = 'https://zelenka.guru/threads/' + minNextPageId + '/'; return; // Выход из функции после перенаправления } else { // Если минимальный айдишник не больше текущей страницы, удаляем его из массива var index = matches.indexOf(minNextPageId); console.log(index, matches.length, j); matches.splice(index, 1); console.log(matches); } } }) .catch(error => { console.error('Ошибка при выполнении запроса:', error); }); } else { alert('Не удалось получить ID текущей страницы'); } } // Создаем кнопку и добавляем обработчик события function addButton() { var myButton = document.createElement('button'); myButton.innerHTML = 'некст'; myButton.className = 'btn-new'; // Добавляем класс для стилей // Устанавливаем размер и цвет кнопки myButton.style.width = '150px'; // Замените на желаемый размер myButton.style.height = '40px'; // Замените на желаемый размер myButton.style.backgroundColor = 'rgb(34,142,93)'; // Замените на желаемый цвет // Устанавливаем стили кнопки myButton.style.border = 'none'; myButton.style.borderRadius = '10px'; myButton.style.textDecoration = 'none'; myButton.style.color = 'white'; myButton.style.boxShadow = '0 5px 0 #003CC5'; myButton.style.float = 'right' // Назначаем обработчик события на наведение myButton.addEventListener('click', function() { myButton.style.boxShadow = 'none'; myButton.style.position = 'relative'; myButton.style.top = '5px'; }); // Назначаем обработчик события на убирание курсора myButton.addEventListener('mouseout', function() { myButton.style.position = 'initial'; myButton.style.top = 'initial'; }); // Проверяем наличие элемента, указывающего на нужную страницу var offTopicLink = document.querySelector('a[href="forums/585/"]'); if (offTopicLink) { // Если элемент найден, создаем кнопку и добавляем обработчик события myButton.addEventListener('click', goToNextPage); var container = document.querySelector('.pageWidth'); // Замените '.some-container' на селектор вашего контейнера container.appendChild(myButton); } else { console.log('На данной странице не найден элемент "Оффтопик", кнопка не будет добавлена.'); } } // Вызываем функцию для добавления кнопки при загрузке страницы addButton(); })(); JS // ==UserScript== // @name Temnext // @namespace http://tampermonkey.net/ // @version 2024-02-12 // @description next button // @author You // @match https://zelenka.guru/threads/* // @icon https://www.google.com/s2/favicons?sz=64&domain=zelenka.guru // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; // Your code here... // Функция для получения ID страницы из URL function getPageId() { var url = window.location.href; var matches = url.match(/\/threads\/(\d+)\//); if (matches && matches.length > 1) { return parseInt(matches[1]); } return null; } // Функция для выполнения запроса на страницу с более большим идентификатором function goToNextPage() { var currentPageId = getPageId(); if (currentPageId !== null) { fetch('https://zelenka.guru/forums/585/') .then(response => response.text()) .then(data => { var matches = data.match(/threads\/(\d+)\//g); var len = matches.length for (var i = 0; i < len; i++) { matches[i] = parseInt(matches[i].match(/\d+/)[0]); } for (var j = 0; j < len; j++) { var minNextPageId = Math.min(...matches); if (minNextPageId > currentPageId) { window.location.href = 'https://zelenka.guru/threads/' + minNextPageId + '/'; return; // Выход из функции после перенаправления } else { // Если минимальный айдишник не больше текущей страницы, удаляем его из массива var index = matches.indexOf(minNextPageId); console.log(index, matches.length, j); matches.splice(index, 1); console.log(matches); } } }) .catch(error => { console.error('Ошибка при выполнении запроса:', error); }); } else { alert('Не удалось получить ID текущей страницы'); } } // Создаем кнопку и добавляем обработчик события function addButton() { var myButton = document.createElement('button'); myButton.innerHTML = 'некст'; myButton.className = 'btn-new'; // Добавляем класс для стилей // Устанавливаем размер и цвет кнопки myButton.style.width = '150px'; // Замените на желаемый размер myButton.style.height = '40px'; // Замените на желаемый размер myButton.style.backgroundColor = 'rgb(34,142,93)'; // Замените на желаемый цвет // Устанавливаем стили кнопки myButton.style.border = 'none'; myButton.style.borderRadius = '10px'; myButton.style.textDecoration = 'none'; myButton.style.color = 'white'; myButton.style.boxShadow = '0 5px 0 #003CC5'; myButton.style.float = 'right' // Назначаем обработчик события на наведение myButton.addEventListener('click', function() { myButton.style.boxShadow = 'none'; myButton.style.position = 'relative'; myButton.style.top = '5px'; }); // Назначаем обработчик события на убирание курсора myButton.addEventListener('mouseout', function() { myButton.style.position = 'initial'; myButton.style.top = 'initial'; }); // Проверяем наличие элемента, указывающего на нужную страницу var offTopicLink = document.querySelector('a[href="forums/585/"]'); if (offTopicLink) { // Если элемент найден, создаем кнопку и добавляем обработчик события myButton.addEventListener('click', goToNextPage); var container = document.querySelector('.pageWidth'); // Замените '.some-container' на селектор вашего контейнера container.appendChild(myButton); } else { console.log('На данной странице не найден элемент "Оффтопик", кнопка не будет добавлена.'); } } // Вызываем функцию для добавления кнопки при загрузке страницы addButton(); })();