Почему выпадающий список bootstrap не открывается? - PullRequest
1 голос
/ 22 апреля 2020

У меня есть страница, созданная с Bootstrap 4.3.1 и раскрывающимся списком, который не открывается. Я включил /bootstrap/4.3.1/css/bootstrap.min.css, /jquery/3.4.0/jquery.min.js и /bootstrap/4.3.1/js/bootstrap .bundle.min. js.

Когда я пытаюсь открыть раскрывающийся список (даже с примером из https://getbootstrap.com/docs/4.3/components/dropdowns/), я получаю только следующую ошибку в консоли: «InternalError : слишком много рекурсии "(в Firefox 75.0). Аналогично в Edge, просто формулировка ошибки «SCRIPT28: Недостаточно места в стеке».

Странная вещь номер 1: до того, как через несколько дней она уже заработала. Я не вижу ничего, что я изменил, что это больше не работает.

Странная вещь номер 2: Ошибка происходит в файле /bootstrap/node_modules/popper.js/dist/esm/ popper. js и у меня нет папки с именем node_modules.

Еще более странная вещь номер 3: Когда я копирую исходный текст страницы и сохраняю его как html -файл, все работает нормально .

Что я могу сделать?

Редактировать: Консоль говорит, что ошибка в поппере. js: 147: 30, и когда я нажимаю на нее, я получаю эту строку (если (/ (auto | scroll | overlay) /. test (overflow + overflowY + overflowX)) {) в функции getScrollParent, которая через 4 строки называется рекурсивной.

Ответы [ 2 ]

0 голосов
/ 22 апреля 2020

После нескольких попыток я нашел решение.

Я пишу свою страницу в строгом х html:

<!DOCTYPE html>
<html lang='de-DE' xml:lang='de-DE' xmlns='http://www.w3.org/1999/xhtml'>

Чтобы заставить браузер интерпретировать страницу строго с xml (все теги открыты и закрыты правильно) Я отправляю php этот заголовок:

header('Content-Type: application/xml; charset=utf-8');

Когда я удаляю эту строку, выпадающий список работает.

Это мне кажется быть ошибкой в ​​Bootstrap. Кто-нибудь знает, как я могу использовать оба: Bootstrap и x html (не только написать x html valid, а также браузер, чтобы интерпретировать его как xml)? Можно ли где-нибудь сообщить об ошибке или, может быть, кто-то может сделать это для меня?

Редактировать: После еще одного исследования я обнаружил, что разница заключается в том, что имена узлов прописные в html и строчные в xml.
https://developer.mozilla.org/en-US/docs/Archive/Web/Writing_JavaScript_for_HTML

К сожалению, команда из bootstrap не хочет быть совместимой с x html.
https://github.com/twbs/bootstrap/issues/29235

Я отредактировал bootstrap файлы теперь локально для себя, чтобы он заработал. Я надеюсь, что команда bootstrap в будущем изменит свое мнение на этот топи c.

0 голосов
/ 22 апреля 2020

Вы пытались включить файл Popper JS в свой HTML?

<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>

Согласно документам, он необходим для выпадающих меню, всплывающих подсказок и всплывающих окон.

https://getbootstrap.com/docs/4.4/getting-started/introduction/#js

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...