2017-09-10 92 views
2

我要爲該項目構建一個論壇,但現在我面臨這個問題,我希望用戶能夠發佈他們的HTML源代碼,因爲它在此工作forum如何在沒有瀏覽器渲染的情況下發布HTML代碼

但問題是,代碼從我的數據庫檢索時運行或分散我的設計。

我試着用在jQueryrepalce()但我只replace < with &lt;,但我希望有一個功能是能夠取代其他如>,",'&所以我的問題是我怎麼可以更新此功能。

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

上面的代碼工作,以取代<但是當我嘗試包括功能將停止工作,我怎樣才能使它發揮作用>,",'&

在此先感謝。

回答

2

堅持在<pre><code>標籤,或兩者兼而有之,並確保你插入的內容時,標籤

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>將保留代碼中使用text(),並且<pre>會保留空白,但也有CSS white-space屬性,可以作爲<pre>標記使用pre設置

+0

但他們的方式,你告訴我如何使用函數中的replace()代替所有代碼發佈 – alert

+0

還有其他方法。您不必更換任何東西,因爲無論如何這些實體都不會工作,實體可以轉換爲HTML,也可以「按原樣」輸出,即不是「>」或「<」。不使用上面的標籤來完成它的方式是以純文本形式輸出HTML - > https://jsfiddle.net/bLu0jcd2/ – adeneo

相關問題