Рейтинг:0

--2 добавляется к идентификатору блока

флаг jp

У меня странная проблема. После обновления веб-сайта с D8 до D9 некоторые из моих идентификаторов блоков изменились. У некоторых из них сейчас --2 за удостоверением личности. Это портит мой стиль и сценарии. И мне интересно, как это может произойти и есть ли простое решение для этого. я нашел Эта проблема без какого-либо решения, кроме изменения моих файлов CSS и JS.

Я знаю, что Drupal иногда меняет ID после и Ajax-вызова, этот новый ID уже равен трем после загрузки первой страницы. Я могу, конечно, удалить --2 из идентификатора, используя twig strip или что-то в этом роде, но это похоже на большой взлом, поэтому я хочу знать, почему это происходит.

У кого-нибудь есть идеи, где искать, где и почему, как это происходит?

Jaypan avatar
флаг de
Если я правильно помню (я изучал это, может быть, 10 лет назад), это для функциональности #ajax. Поскольку элемент перестраивается, это не исходный элемент, а новый элемент, поэтому семантически использование одного и того же идентификатора было бы неправильным. Если вам нужно продолжать нацеливаться на один и тот же элемент, вы можете использовать класс элемента-оболочки плюс класс элемента для нацеливания на элемент.
флаг cn
Похоже, что-то дважды вызывает `Html::getUniqueId()` для этих блоков. Это происходит в `template_preprocess_block` по умолчанию, поэтому ищите пользовательский код, который может попытаться снова установить идентификатор, или, возможно, что-то еще, что приведет к двойному отображению блоков.
Joost avatar
флаг jp
Спасибо, Клайв, я посмотрел на это, и у меня есть два модуля contrib, которые делают эту веб-форму и аспекты. Но удаление крючка из обоих модулей не устраняет проблему.В моих пользовательских модулях нет этого хука. Так что это может быть основной модуль, но как выяснить, какой именно? Я узнал, что это делается только с блоками представлений. Так по какой-то причине эти блоки отображаются дважды и отображаются только один раз? Каким будет мой следующий шаг в решении этой проблемы?
Kevin avatar
флаг in
Краткосрочное исправление заключается в том, чтобы не стилизовать идентификаторы, это может произойти в зависимости от.
Joost avatar
флаг jp
Да, я уже исправил стиль с помощью класса, но эта проблема все еще беспокоит меня. Визуализация нескольких блоков дважды без всякой причины кажется неправильным. Поэтому я хочу копаться в этом, чтобы действительно исправить это. Но как…?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.