Позвольте мне объяснить: я хочу сохранить большую строку того, что будет страницей Blob HTML, на моей другой странице HTML. Например:
.
<html>
<head>
</head>
<body>
<div id="lol" style="display:none">
<b id="gf">asdf</b>
<script>
document.write(2134);
window.addEventListener("message", e => {
gf.innerHTML = Date.now();
})
</script>
</div>
<script>
var asdf = document.createElement("iframe");
asdf.src = URL.createObjectURL(new Blob([lol.innerHTML], {
type:"text/html"
}))
asdf.addEventListener("load", () => {
asdf.contentWindow.postMessage(23, "*")
});
document.body.appendChild(asdf);
addEventListener("message", e => console.log(e.data))
</script>
</body>
</html>
Работает так, как задумано, проблема в части <div id="lol">
, которая предназначена исключительно для хранения текста для большого двоичного объекта (поскольку он хранится в длинном * 1032). * строка, окруженная "` `", не работает, не спрашивайте), фактически активирует содержимое внутри, которое устанавливает прослушиватель событий в главное окно (в дополнение к установке его для окна iframe после него) был назначен на BLOB-объект); есть ли в * 1033 какой-то узел, который используется исключительно для хранения больших строк, но не имеет никакого эффекта, AKA не выполняет никаких сценариев? Я думал об использовании <script type="bla">
, но когда я делаю </script>
в середине, я почти уверен, что он разбивает окружающий тег <script>
вместо того, чтобы содержать его внутри, поэтому: Как я могу хранить текст внутри узла HTML, чтобы теги <script>
не выполнялись в этом узле?
Я нашел это: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/pre, который должен содержать простой текст в HTML, но он все еще выполняет <script>
, также я нашел https://developer.mozilla.org/en-US/docs/Web/HTML/Element/code, который предлагает <code>
в качестве альтернативы незашифрованному тексту , но он все еще выполняет мой <script>
tags ... какой тег HTML можно использовать только для рендеринга / хранения абсолютно простого текста, независимо от того, что в нем напечатано?