jquery 在.html()中呈现内部HTML [重复]

sd2nnvve  于 2023-03-07  发布在  jQuery
关注(0)|答案(1)|浏览(160)
    • 此问题在此处已有答案**:

Remove all HTMLtags in a string (with the jquery text() function)(6个答案)
2天前关闭。
此帖子已在2天前编辑并提交审核,无法重新打开帖子:
原始关闭原因未解决
尝试清理一个文本HTML并在另一个HTML中呈现它,这是我尝试过的,

$(document).ready(function(){
  $("button").click(function(){
    $("p").html(sanitizeHTML("Hello <b>world!</b>"));
  });
});

function sanitizeHTML(str){
    var temp = document.createElement('div');
    temp.textContent = str;
    return temp.innerHTML;
}

获取输出为
Hello <b>world!</b>
需要适当的HTML作为
Hello world!
下面是一个可供试用的工作示例https://jsfiddle.net/mb9ksq3z/
请注意,这不是另一个从文本中删除HTML的问题,重点是清理HTML中的"强化代码扫描"开放漏洞,直接将字符串放入. html()是直接漏洞。

beq87vna

beq87vna1#

将您的函数更改为:

function sanitizeHTML(str)
{
   let tmp = document.createElement("div");
   tmp.innerHTML = str;
   return tmp.textContent || tmp.innerText || "";
}

相关问题