Javascript 如何使用DOM而不是HTML连接创建带有格式化项的列表?
请原谅我,让我知道如果我的帖子是不正确的,因为我是这个论坛的新成员 我在这里找到了大部分答案,但我的问题来自.createTextNode。我的用户正在使用多个编辑器框构建大纲。在这些框中,他们可以设置文本下划线、颜色、粗体等的格式。。因此,我要传递给.createTextNode的数组项实际上包含HTML标记,用于格式化行项。但是.createTextNode使其成为纯文本,而纯文本在通过document.getElementById'foo.appendChild显示时会吐出标记而不是应用它 我知道我应该远离HTML连接,但它看起来非常诱人 在追加和显示列表项时,是否有任何方法可以保留其格式 提前感谢您的帮助 尝试innerHTML,它将尝试将内容字符串解析为HTML结构。例如,您有一个P标记 将给你一个可点击的锚Javascript 如何使用DOM而不是HTML连接创建带有格式化项的列表?,javascript,html,Javascript,Html,请原谅我,让我知道如果我的帖子是不正确的,因为我是这个论坛的新成员 我在这里找到了大部分答案,但我的问题来自.createTextNode。我的用户正在使用多个编辑器框构建大纲。在这些框中,他们可以设置文本下划线、颜色、粗体等的格式。。因此,我要传递给.createTextNode的数组项实际上包含HTML标记,用于格式化行项。但是.createTextNode使其成为纯文本,而纯文本在通过document.getElementById'foo.appendChild显示时会吐出标记而不是应用它
<p id="asdf">
<a href="#">qwerty</a>
</p>
但是要小心!!!请注意,我在这里使用了三个bang符号,在插入之前,您必须确保没有有害代码。检查此示例:
document.getElementById('asdf').innerHTML = '<img src="image.png" onload="alert(1)">'
您将看到一个警报对话框。虽然这个例子很简单,但在实践中它可能更危险,例如,动态地将跨站点脚本附加到页面中,即
编辑:这是一个演示
var选项=[,];
函数makeUL{
var-LIs=;
对于i=0;idocument.getElementById('asdf').innerHTML = '<img src="image.png" onload="alert(1)">'