Javascript 在文本区域中键入html时,如何呈现html?
我正在尝试按键入的方式呈现HTML。也就是说,用户在文本区域中键入HTML,然后(我认为使用javascript)在文本或另一个文本区域或窗口中的窗口中呈现HTML。否则,我必须让他们输入所有内容,然后单击预览按钮。获取文本区域的输入,并将其分配给文本区域按键上div标记的内部html。有些原因我不想实时执行,而是按照您的说明使用预览(可以是JavaScript或服务器端语言)Javascript 在文本区域中键入html时,如何呈现html?,javascript,html,Javascript,Html,我正在尝试按键入的方式呈现HTML。也就是说,用户在文本区域中键入HTML,然后(我认为使用javascript)在文本或另一个文本区域或窗口中的窗口中呈现HTML。否则,我必须让他们输入所有内容,然后单击预览按钮。获取文本区域的输入,并将其分配给文本区域按键上div标记的内部html。有些原因我不想实时执行,而是按照您的说明使用预览(可以是JavaScript或服务器端语言) 无意中,他们的代码可能会破坏您的页面(他们的代码中额外关闭的div会破坏您的页面) 他们的代码可能会故意破坏您的页面
虽然这是一个很酷的特性,但在你开始之前,可能会有一些需要考虑的事情。这个列表对于我来说已经足够避免实时的事情了。一个稍微安全一点的解决方案是将表单post中的所有数据发送到服务器端脚本,该脚本呈现html页面。然后,当他们单击预览按钮时,在iframe中异步加载该文件。如果您选择在键入时执行此操作,将有大量无用的往返服务器,更不用说影响历史堆栈的页面加载了。我有一个工作示例: 您可以在文本区域(第一个字段)中输入消息。 消息被转换。一大串bbcode被转换成安全的HTML,坏的HTML被删除,好的HTML被保留,JS事件属性被删除。 输出消息打印在一个div(第二个字段)中,这使得它能够实时呈现所有HTML。 然后,您可以对输出执行所需的操作(编辑输出除外) 非常安全。所有HTML输出都是安全的HTML,JS事件属性被删除,并且在输入(或BBCode[/div])时不会关闭div。最后一件事是自动进行的,没有为此进行编码 第二个注意事项是,我们在其中编写答案的编辑工具具有完全相同的基础
Youri听起来很酷,但也充满了安全风险、开发困难和全面的PITA。在更新Div之前,对它运行一些白名单。我不能让他们在客户端查看它,然后,当他们都完成后,让他们发布它,然后确保它是干净的吗?但是如果你正在修改DOM,损害可以当场造成。