Я хотел бы, чтобы в моих messages_en.properties был перевод, содержащий ссылку, которая открывается в новой вкладке. Есть ли способ сделать это?
я уже пытался добавить
<a target = "_blank" href = "http://example.com">Example</a>
и
<a href = "#" onclick='window.open("http://example.com");return false;'>Example</a>
безуспешно.
заранее спасибо
Скорее всего ваш HTML не работает из-за kcSanitize в файле шаблона. Везде, где разрешены HTML-сообщения, шаблоны Keycloak FreeMarker также будут переносить текст с помощью этого метода, который:
Позволяет очищать html, который использует Freemarker ?no_esc. Таким образом, html может быть разрешено, но он все еще очищается в целях безопасности. Теги и атрибуты, которые считаются небезопасными, будут удалены.
No_esc позволяет отображать HTML (без экранирования), но kcSanitize сначала удаляет небезопасные теги и атрибуты. В моем тестировании я обнаружил, что «цель» и «клик» удалены.
Один из способов, который работает, но который я бы не рекомендовал из соображений безопасности, — это удаление kcSanitize() в том месте, где отображается ваше сообщение в соответствующем файле .ftl.
Другая идея заключается в добавлении идентификатора или класса к элементу в вашем файле .properties и использовании пользовательского Javascript для установки атрибута target="_blank".
Извините за задержку с ответом. Ваша вторая идея работает отлично! Большое спасибо!