Показать сообщение отдельно
  #2 (permalink)  
Старый 19.12.2023, 13:47
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

StartGames, способов много, но кажется, что не очень хорошая идея хранить html в БД (если я правильно понял). Если у вас потом поменяется дизайн/логика, то будет больно и обратного пути не будет. Храните данные в БД в формате JSON, чтобы не привязываться к разметке и на клиенте было проще с этим работать.

Если отвечать конкретно на Ваш вопрос, то можно это сделать несколькими способами:

1. Хранить разметку в глобальном свойстве:

<script>
window._entityData = '<div>123</div>';
</script>

...

<script>
console.log(window._entityData);
</script>


2. Хранить разметку в тэге:

<script id="entityData" type="text/template">
  <div>123</div>
</script>


<script>
console.log(document.getElementById('entityData').innerHTML);
</script>

3. Хранить в data-атрибуте, но в "закодированном" формате

<div data-entity="%3Cdiv%20class%3D%22foo%22%3E123%3C%2Fdiv%3E">..</div>


<script>
console.log(
  decodeURIComponent(
    document.querySelector('[data-entity]').dataset.entity
  )
);
</script>


P.S.: учтите, что в первом варианте нужно будет экранировать кавычки, перенос строки и желательно слэш.
Ответить с цитированием