【发布时间】:2021-06-15 09:40:21
【问题描述】:
我正在使用 textarea 收集表单中的文本,并计划使用 .innerHTML 呈现该文本,以便用户可以将内容设置为粗体、斜体和下划线。我可能会决定增加灵活性以允许使用样式属性的彩色文本。
我曾考虑使用正则表达式来匹配文本,但我希望有一个更优雅的解决方案。
这是我目前拥有的
<div class="fullblog-container">
<textarea name="title" id="fullblogTitle"></textarea>
</div>
<button class="addBlock" onclick="submitBlocks()">SUBMIT</button>
const fullBlogContainer = document.querySelector(".fullblog-container");
function submitBlocks() {
const allChildren = Array.from(fullBlogContainer.children);
const filterChildren = allChildren.filter((elem) => elem.tagName != "BUTTON");
console.log(filterChildren[0].value);
}
上面的代码从我所有的textarea(目前只有1个textarea)获取输出。
我计划使用.innerHTML 渲染该值,并希望保留 b、u、i 标记和可能带有样式属性的 div 标记,并将其余部分视为文本。
编辑:虽然我的问题导致防止注入攻击(存在类似问题),但我需要一种方法将某些部分呈现为文本,将其他部分呈现为 html,但我还没有找到合适的解决方案。
PS:请不要使用 JQuery
【问题讨论】:
-
@evolutionxbox 我需要一种方法将特定部分呈现为文本,其余部分呈现为 html,所以我认为这不能回答我的问题。
-
@jabaa 对于具有样式属性的 div 标签,我该怎么做? ... 未来。
-
我不明白为什么我会投票失败,我已经完成了我的研究,但没有找到任何合适的方法来完成这项任务。我也没有看到任何类似的 StackOverflow 问题。
-
请您向我们展示您自己代码的输入、当前输出以及所需的输出?确保它是minimal reproducible example
标签: javascript html dom