ckeditor富文本编辑器的内容如何不在富文本编辑器中显示?

micstone
  • 1.6k

富文本编辑器的内容保存是以字符串保存的,比如在富文本编辑器中编辑hello world,保存在数据库中的内容实际是
"<p>hello world</p>"
如果直接velocity中显示,就会显示成<p>hello world</p>。
目前我想到了两种方法:
1、在velocity中使用一个隐藏的div来保存富文本的内容,然后通过js操作来实现hello world的显示;这种方法比较复杂,页面会出现很多冗余的内容。
2、同样使用富文本来显示,通过修改富文本的工具条,边框的样式来显示,但是富文本是采用iframe来嵌套的,会出现滚动条,页面效果不好。

请问在网页中,有简单的方法来显示字符串形式的html代码吗?

回复
阅读 5k
1 个回答

我是这样通过js函数来实现的,将字符串形式的html显示在前台,因为是js函数,所以也可以复用,不知道对你有没有用

function decodeHtml(s) {
    var HTML_DECODE = {
        "&lt;": "<",
        "&gt;": ">",
        "&amp;": "&",
        "&nbsp;": " ",
        "&quot;": "\"",
        "&copy;": ""
        // Add more
    };

    var REGX_HTML_ENCODE = /"|&|'|<|>|[\x00-\x20]|[\x7F-\xFF]|[\u0100-\u2700]/g;

    var REGX_HTML_DECODE = /&\w+;|&#(\d+);/g;

    var REGX_TRIM = /(^\s*)|(\s*$)/g;

    s = (s != undefined) ? s : "";
    return (typeof s != "string") ? s :
        s.replace(REGX_HTML_DECODE,
        function ($0, $1) {
            var c = HTML_DECODE[$0];
            if (c == undefined) {
                // Maybe is Entity Number
                if (!isNaN($1)) {
                    c = String.fromCharCode(($1 == 160) ? 32 : $1);
                } else {
                    c = $0;
                }
            }
            return c;
        });
};
$(document).ready(function(){
    var content = $("#contentCode").html();
    console.log(content);
    $("#content").append(decodeHtml(content));
});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏