Я пытаюсь отправить postMessage
с помощью JavaScript в шаблоне EJS, и мне нужно отправить простой строковый объект JSON, который выглядит так:
{ "id": "1234567890" }
Когда я пытаюсь передать этот объект в шаблон EJS, двойные кавычки ("
) экранируются в "
. Вот мой шаблон:
<script>
if (window.opener) {
window.opener.postMessage('<%= JSON.stringify(user) %>', "http://localhost:3000")
window.close()
}
</script>
Строковый объект превращается в это:
"{"id":"1234567890"}"
Что я могу сделать, чтобы EJS не экранировал специальные символы?
Оказывается, мне нужно заменить <%=
на <%-
, чтобы использовать неэкранированные символы.
Итак, мой код должен быть:
<script>
if (window.opener) {
window.opener.postMessage('<%- JSON.stringify(user) %>', "http://localhost:3000")
window.close()
}
</script>