使用javascript对html进行编码/解码

encoding/decoding html using javascript

本文关键字:编码 解码 javascript html 使用      更新时间:2023-09-26

我正在使用Tinymce编辑器格式化ASP.NET页面中的文章
这是我的代码:-

 <asp:TextBox runat="server" ID="textarea" Height="70px" 
        Width="324px" TextMode="MultiLine"></asp:TextBox><br />
    <asp:Button ID="submit" runat="server" Text="Button" 
    OnClientClick="encodeMyHtml()" onclick="submit_Click" CausesValidation="False"/>
</div>

这就是我在网上找到的编码html的方法,并尝试使用它。

function encodeMyHtml() {
    var htmlToEncode = document.getElementById("textarea").value;
    // save content after encoding
    alert(htmlToEncode);
    var encodedHtml = escape(htmlToEncode);
    alert(encodedHtml);
    // Later when displaying it back, decode it.
    var ohtml = unescape(encodedHtml);
    alert(ohtml);
}

这也是

   function encodeMyHtml() {
      var htmlText = document.getElementById('textarea').value;
      htmlText = htmlText.replace(/'</g, "&lt;");
      //alert("hello2");
      htmlText = htmlText.replace(/'>/g, "&gt;");
      alert(htmlText);
 }

但它对我不起作用,甚至没有在alert()函数中显示htmlToEncode值。每次我点击提交按钮,它都会显示以下错误

一个潜在危险的请求。从客户端等检测到表单值。

请帮忙解决这个问题。我想对HTML内容进行编码,然后将其存储到数据库中,然后在另一个页面上检索它。

var text = document.getElementById("myTextarea").value;
// temporary element has all the native encoding capability you need
var p = document.createElement('p');
// set text and get back HTML
p.appendChild( document.createTextNode(text) );
var html = p.innerHTML;
// add line breaks to display in elements that don't preformat (like textarea does)
html = html.replace(/('r'n|'n|'r)/g, '<br />' );
// set html and get back text
p.innerHTML = html;
text = p.textContent||p.innerText;
TinyMCE编辑器已经对用户编写的标签进行了编码。

要解码这些标签,您可以使用以下行

    var decodedHtml = $('<div/>').html(yourText).text();