如何在没有浏览器渲染的情况下发布HTML代码

时间:2017-09-10 16:58:43

标签: javascript jquery

我要为该项目构建一个论坛,但是现在我正面临这个问题,我希望用户能够发布他们的HTML源代码,因为它在forum中工作

  

但问题是代码在从我的数据库中检索时会运行或分散我的设计。

我尝试在repalce()中使用jQuery,但我只能replace < with &lt;,但我想要一个能够替换>,",'&等其他功能的功能所以我的问题是如何更新此功能。

function convert(div){
  var str =  $(div).html();
  var str2 =  str.replace(/</g,"&lt;");
  var sta =  $(div).html(str2);
  return sta;
}

上面的代码可以替换<,但当我尝试在函数中包含>,",'&时,它将停止工作,我该如何才能使其正常工作。

提前致谢。

1 个答案:

答案 0 :(得分:2)

将其粘贴到<pre><code>个标记中,或两者兼容,并确保在将内容插入标记时使用text()

function convert(div){
    var str =  $(div).html();
    var sta =  $('<code />', {text : str});

    return sta;
}

var result = convert( $('#test') );

$('#result').html(result)
#result {
  white-space : pre;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="test">
  <span>
    <p>TEST</p>
  </span>
</div>
<br />
<div id="result">

<code>将保留代码,<pre>将保留空格,但还有CSS white-space属性,可以使用{<pre>标记作为pre标记1}}设置