Django Ссылки и кнопки Проблема с кликами: Все щелчки открываются в новом окне

После ряда исправлений все нажатия на кнопки, ссылки, кнопки отправки... открываются в новом окне. Отправка форм больше не работает, что означает, что я не могу проверить последние сделанные изменения, а навигация, очевидно, сломана.


Что происходит: При нажатии на любую кнопку или ссылку открывается новое окно/вкладка, как и должны были бы вести себя ссылки с атрибутом target="_blank". Что ожидается: Действие после щелчка по любой кнопке или ссылке должно оставаться на той же странице, как по умолчанию ведет себя ссылка target="self"...


Я понятия не имею, откуда может исходить проблема...:

  • Некорректность или закрытость? Я проверял, перепроверял...
  • Одна из библиотек, оставшихся после удаления tailwind
  • .
  • Ошибка в расширении django_browser_reload
  • .
  • Что-то связанное с django-unicorn ?

Спасибо, что помогли мне решить проблему с блокировкой...

Быстрое исправление, не постоянное и Не работает для форм.
Спасибо, что помогли найти постоянное решение...



<script>
/**
 * Force links to open in the same window (except those with target="_blank")
 *
 * This script prevents links without the `target="_blank"` attribute from opening in a new window/tab.
 * It achieves this by intercepting the click event and setting the current window's location to the link's URL.
 * Details:
 *     1. Selecting all anchor elements (links) using `document.querySelectorAll('a')`.
 *     2. Looping through each link and checking if it has the `target` attribute using `link.hasAttribute('target')`.
 *     3. Adding a click event listener for links without the `target` attribute.
 *     4. Inside the event listener:
 *         - `event.preventDefault()` prevents the default link behavior of opening in a new window.
 *         - `window.location.href = link.href;` sets the current window's location to the link's URL, effectively opening it in the same window.
 * 
 * @see [Stack Overflow Question](https://stackoverflow.com/questions/78510338/urgent-django-links-buttons-click-issue-all-clicks-open-in-a-new-window)
 */

const links = document.querySelectorAll('a, button');  // Select all links

let condFun = (link) => !link.hasAttribute('unicorn:click') 
                        && (!link.hasAttribute('target') || link.target != "_blank");

links.forEach(link => {
  if (condFun(link)) {          // Check if target attribute is missing
    link.addEventListener('click', (event) => {
      event.preventDefault();                  // Prevent default link behavior
      window.location.href = link.href;        // Open link in the same window
    });
  }
});        
</script>
Вернуться на верх