Спасибо, что поделились! Уведомление об ошибке больше не появляется.
У меня возникла ещё одна проблема, о которой я упоминал здесь:
По этому вопросу я обратился к ChatGPT, и он ответил (учитывая, что я не разработчик):
Показать сообщение от ChatGPT
Проблема, скорее всего, связана с тем, как вы извлекаете topicId из URL:
const topicId = url.split('/')[2];
Если ваш URL содержит более сложные паттерны (например, заголовки с пробелами, специальными символами или нестандартные слаг), такое простое разделение не позволит надёжно получить правильный ID темы.
Почему это вызывает проблемы:
- В URL вроде
/t/3ple-2015-2019-title/12345числовой ID темы находится в конце, но ваш код предполагает, что ID всегда является третьим сегментом. - Если структура URL варьируется, вы иногда получаете слаг или часть заголовка вместо ID.
- Это ломает ваш AJAX-запрос (
/t/${topicId}.json), так как вы можете отправлять некорректный ID темы или слаг, из-за чего возвращается неверная или стандартная информация о категории (например, «General»).
Как исправить:
Используйте более надёжный способ извлечения ID темы из URL:
- Извлеките ID темы из последнего числового сегмента URL.
URL тем в Discourse часто выглядят так: /t/{slug}/{id}, например:
/t/3ple-2015-2019-title/12345
Здесь 12345 — это ID темы.
Замените это:
const topicId = url.split('/')[2];
На это:
const segments = url.split('/').filter(Boolean);
const topicId = segments[segments.length - 1]; // последний сегмент, ожидаемый как числовой ID
Для большей надёжности проверьте, что topicId является числом:
if (!/^\d+$/.test(topicId)) {
console.error("Неверный ID темы, извлечённый из URL:", topicId);
return; // прекратить выполнение
}
Итог: обновите фрагмент кода в updateBreadcrumbs следующим образом:
if (url.includes('/t/')) {
const segments = url.split('/').filter(Boolean);
const topicId = segments[segments.length - 1];
if (!/^\d+$/.test(topicId)) {
console.error("Неверный ID темы, извлечённый из URL:", topicId);
return;
}
// Затем продолжите ваши AJAX-вызовы с использованием topicId
}
Таким образом, вы всегда будете получать числовой ID темы, независимо от сложных заголовков или пробелов в URL, что исправит поиск категории и пути в хлебных крошках.
Не могли бы вы это исправить?
Заранее спасибо ![]()