{@html ...}
Чтобы вставить необработанный HTML в ваш компонент, используйте тег {@html ...}
:
<article> {@html content}</article>
:::note Убедитесь, что вы либо экранируете переданную строку, либо заполняете её только значениями, которые находятся под вашим контролем, чтобы предотвратить атаки XSS. Никогда не отображайте неочищенный контент. :::
Выражение должно представлять собой корректный самостоятельный HTML — это не сработает, так как </div>
не является допустимым HTML:
{@html '<div>'}content{@html '</div>'}
Кроме того, это не скомпилирует код Svelte.
Стилизация
Заголовок раздела «Стилизация»Контент, отображаемый таким образом, является «невидимым» для Svelte и, следовательно, не будет получать ограниченные стили — другими словами, это не сработает, и стили для a
и img
будут считаться неиспользуемыми:
<article> {@html content}</article>
<style> article { a { color: hotpink } img { width: 100% } }</style>
Вместо этого используйте модификатор :global
, чтобы нацелиться на всё внутри <article>
:
<style> article :global { a { color: hotpink } img { width: 100% } }</style>