diff --git a/js/base.js b/js/base.js index c176cc403..957ccad17 100644 --- a/js/base.js +++ b/js/base.js @@ -57,10 +57,10 @@ document.addEventListener("DOMContentLoaded", function () { var page; switch (key) { case shortcuts.next: - page = document.querySelector('.navbar a[rel="next"]:first').getAttribute('href'); + page = document.querySelector('.navbar a[rel="next"]'); break; case shortcuts.previous: - page = document.querySelector('.navbar a[rel="prev"]:first').getAttribute('href'); + page = document.querySelector('.navbar a[rel="prev"]'); break; case shortcuts.search: e.preventDefault(); @@ -74,9 +74,9 @@ document.addEventListener("DOMContentLoaded", function () { break; default: break; } - if (page) { + if (page && page.hasAttribute('href')) { keyboard_modal.hide(); - window.location.href = page; + window.location.href = page.getAttribute('href'); } }); @@ -91,7 +91,7 @@ document.addEventListener("DOMContentLoaded", function () { // First, close any sibling dropdowns. var container = item.parentElement.parentElement; - container.querySelectorAll('> .dropdown-submenu > a').forEach(function(el) { + container.querySelectorAll(':scope > .dropdown-submenu > a').forEach(function(el) { if (el !== item) { hideInnerDropdown(el); } @@ -118,8 +118,14 @@ document.addEventListener("DOMContentLoaded", function () { item.classList.remove('open'); popup.scrollTop = 0; - popup.querySelector('.dropdown-menu').scrollTop = 0; - popup.querySelector('.dropdown-submenu > a').classList.remove('open'); + var menu = popup.querySelector('.dropdown-menu'); + if (menu) { + menu.scrollTop = 0; + } + var dropdown = popup.querySelector('.dropdown-submenu > a'); + if (dropdown) { + dropdown.classList.remove('open'); + } } document.querySelectorAll('.dropdown-submenu > a').forEach(function(item) { @@ -138,7 +144,10 @@ document.addEventListener("DOMContentLoaded", function () { document.querySelectorAll('.dropdown-menu').forEach(function(menu) { menu.parentElement.addEventListener('hide.bs.dropdown', function() { menu.scrollTop = 0; - menu.querySelector('.dropdown-submenu > a').classList.remove('open'); + var dropdown = menu.querySelector('.dropdown-submenu > a'); + if (dropdown) { + dropdown.classList.remove('open'); + } menu.querySelectorAll('.dropdown-menu .dropdown-menu').forEach(function(submenu) { submenu.classList.remove('show'); }); diff --git a/sitemap.xml b/sitemap.xml index a43b9fde1..0b4a4f2ba 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -3,346 +3,277 @@ https://www.django-rest-framework.org/ 2026-02-05 - daily https://www.django-rest-framework.org/api-guide/authentication/ 2026-02-05 - daily https://www.django-rest-framework.org/api-guide/caching/ 2026-02-05 - daily https://www.django-rest-framework.org/api-guide/content-negotiation/ 2026-02-05 - daily https://www.django-rest-framework.org/api-guide/exceptions/ 2026-02-05 - daily https://www.django-rest-framework.org/api-guide/fields/ 2026-02-05 - daily https://www.django-rest-framework.org/api-guide/filtering/ 2026-02-05 - daily https://www.django-rest-framework.org/api-guide/format-suffixes/ 2026-02-05 - daily https://www.django-rest-framework.org/api-guide/generic-views/ 2026-02-05 - daily https://www.django-rest-framework.org/api-guide/metadata/ 2026-02-05 - daily https://www.django-rest-framework.org/api-guide/pagination/ 2026-02-05 - daily https://www.django-rest-framework.org/api-guide/parsers/ 2026-02-05 - daily https://www.django-rest-framework.org/api-guide/permissions/ 2026-02-05 - daily https://www.django-rest-framework.org/api-guide/relations/ 2026-02-05 - daily https://www.django-rest-framework.org/api-guide/renderers/ 2026-02-05 - daily https://www.django-rest-framework.org/api-guide/requests/ 2026-02-05 - daily https://www.django-rest-framework.org/api-guide/responses/ 2026-02-05 - daily https://www.django-rest-framework.org/api-guide/reverse/ 2026-02-05 - daily https://www.django-rest-framework.org/api-guide/routers/ 2026-02-05 - daily https://www.django-rest-framework.org/api-guide/schemas/ 2026-02-05 - daily https://www.django-rest-framework.org/api-guide/serializers/ 2026-02-05 - daily https://www.django-rest-framework.org/api-guide/settings/ 2026-02-05 - daily https://www.django-rest-framework.org/api-guide/status-codes/ 2026-02-05 - daily https://www.django-rest-framework.org/api-guide/testing/ 2026-02-05 - daily https://www.django-rest-framework.org/api-guide/throttling/ 2026-02-05 - daily https://www.django-rest-framework.org/api-guide/validators/ 2026-02-05 - daily https://www.django-rest-framework.org/api-guide/versioning/ 2026-02-05 - daily https://www.django-rest-framework.org/api-guide/views/ 2026-02-05 - daily https://www.django-rest-framework.org/api-guide/viewsets/ 2026-02-05 - daily https://www.django-rest-framework.org/community/3.0-announcement/ 2026-02-05 - daily https://www.django-rest-framework.org/community/3.1-announcement/ 2026-02-05 - daily https://www.django-rest-framework.org/community/3.10-announcement/ 2026-02-05 - daily https://www.django-rest-framework.org/community/3.11-announcement/ 2026-02-05 - daily https://www.django-rest-framework.org/community/3.12-announcement/ 2026-02-05 - daily https://www.django-rest-framework.org/community/3.13-announcement/ 2026-02-05 - daily https://www.django-rest-framework.org/community/3.14-announcement/ 2026-02-05 - daily https://www.django-rest-framework.org/community/3.15-announcement/ 2026-02-05 - daily https://www.django-rest-framework.org/community/3.16-announcement/ 2026-02-05 - daily https://www.django-rest-framework.org/community/3.2-announcement/ 2026-02-05 - daily https://www.django-rest-framework.org/community/3.3-announcement/ 2026-02-05 - daily https://www.django-rest-framework.org/community/3.4-announcement/ 2026-02-05 - daily https://www.django-rest-framework.org/community/3.5-announcement/ 2026-02-05 - daily https://www.django-rest-framework.org/community/3.6-announcement/ 2026-02-05 - daily https://www.django-rest-framework.org/community/3.7-announcement/ 2026-02-05 - daily https://www.django-rest-framework.org/community/3.8-announcement/ 2026-02-05 - daily https://www.django-rest-framework.org/community/3.9-announcement/ 2026-02-05 - daily https://www.django-rest-framework.org/community/contributing/ 2026-02-05 - daily https://www.django-rest-framework.org/community/jobs/ 2026-02-05 - daily https://www.django-rest-framework.org/community/kickstarter-announcement/ 2026-02-05 - daily https://www.django-rest-framework.org/community/mozilla-grant/ 2026-02-05 - daily https://www.django-rest-framework.org/community/project-management/ 2026-02-05 - daily https://www.django-rest-framework.org/community/release-notes/ 2026-02-05 - daily https://www.django-rest-framework.org/community/third-party-packages/ 2026-02-05 - daily https://www.django-rest-framework.org/community/tutorials-and-resources/ 2026-02-05 - daily https://www.django-rest-framework.org/topics/ajax-csrf-cors/ 2026-02-05 - daily https://www.django-rest-framework.org/topics/browsable-api/ 2026-02-05 - daily https://www.django-rest-framework.org/topics/browser-enhancements/ 2026-02-05 - daily https://www.django-rest-framework.org/topics/documenting-your-api/ 2026-02-05 - daily https://www.django-rest-framework.org/topics/html-and-forms/ 2026-02-05 - daily https://www.django-rest-framework.org/topics/internationalization/ 2026-02-05 - daily https://www.django-rest-framework.org/topics/rest-hypermedia-hateoas/ 2026-02-05 - daily https://www.django-rest-framework.org/topics/writable-nested-serializers/ 2026-02-05 - daily https://www.django-rest-framework.org/tutorial/1-serialization/ 2026-02-05 - daily https://www.django-rest-framework.org/tutorial/2-requests-and-responses/ 2026-02-05 - daily https://www.django-rest-framework.org/tutorial/3-class-based-views/ 2026-02-05 - daily https://www.django-rest-framework.org/tutorial/4-authentication-and-permissions/ 2026-02-05 - daily https://www.django-rest-framework.org/tutorial/5-relationships-and-hyperlinked-apis/ 2026-02-05 - daily https://www.django-rest-framework.org/tutorial/6-viewsets-and-routers/ 2026-02-05 - daily https://www.django-rest-framework.org/tutorial/quickstart/ 2026-02-05 - daily \ No newline at end of file diff --git a/sitemap.xml.gz b/sitemap.xml.gz index ce6cc6e66..42c3f145b 100644 Binary files a/sitemap.xml.gz and b/sitemap.xml.gz differ