Javascript 如何将某些HTML代码与网页的其余部分隔离开来?
我想允许用户使用HTML标记自定义他们的用户名,而不受限制。 我发现的唯一问题是他们没有关闭标签 例如:(带有未关闭标记的用户名:Javascript 如何将某些HTML代码与网页的其余部分隔离开来?,javascript,jquery,html,Javascript,Jquery,Html,我想允许用户使用HTML标记自定义他们的用户名,而不受限制。 我发现的唯一问题是他们没有关闭标签 例如:(带有未关闭标记的用户名:mynick) 我的尼克:评论文本无辜用户:评论文本 我搜索了一个标签,比如my nick,或者任何强制关闭每个打开的标签的方法,但我并不幸运 预期结果: mynick:注释文本无辜用户:注释文本 有什么聪明的方法可以做到这一点吗?(仅使用HTML或JS/JQuery)如果您有任何不完整的标记,浏览器会自动尝试关闭它(如果您有下面的HTML代码,则不会发生这种情况)。
mynick
)
我的尼克:评论文本无辜用户:评论文本 我搜索了一个标签,比如
my nick
,或者任何强制关闭每个打开的标签的方法,但我并不幸运
预期结果:
mynick:注释文本无辜用户:注释文本
有什么聪明的方法可以做到这一点吗?(仅使用HTML或JS/JQuery)如果您有任何不完整的标记,浏览器会自动尝试关闭它(如果您有下面的HTML代码,则不会发生这种情况)。 如果你看这把小提琴 我在DIV中有HTML作为
Hello World代码>
但是当我从DIV警告HTML时,我得到了
你好,世界代码>
我建议使用jQuery的.html()
函数或JavaScript的.innerHTML
来关闭带有标记的html
编辑:
如果用户在文本框中键入它,则创建新元素(而不是将其附加到文档中)将为您完成这项工作
var fix = document.createElement("div");
fix.innerHTML=document.getElementById("test").value;
小提琴:这会让你发疯的。您需要让用户正确设置HTLM的格式,或者严格限制其使用(即使用HTML编辑器,不允许用户输入自己的HTML)。这个问题没有灵丹妙药。也许你可以使用一些降价库。。?这样做会更安全,同时也会考虑最终HTML的正确性。除了自己解析它并应用正确的规则(标签是自动关闭的/包含内容的)之外,这实际上是不可行的。如果您允许用户输入几乎任何内容并将其显示给其他人,那么您就直接打开了脚本注入。当您允许用户键入其名称时,例如:Billgates
,您如何将其存储在后端?使用PHP mySQL?后端使用Python SQL server。谢谢你的快速回复。起初这似乎是一个微不足道的问题。