从WYSIWYG形式,但阻止用户打破页面布局

时间:2016-05-21 18:09:46

标签: javascript php jquery html ckeditor

我正在考虑使用HTML WYSIWYG编辑器,例如CKEditor,但我很好奇是什么阻止用户提交一些HTML代码,当我尝试输出他们的HTML时会改变页面的布局

以下是两个帖子的示例:

<p><b>This is my post</b></p>
<p>It has some nice HTML that does not break stuff</p>

</div>
<div style="height:10000px; width:10000px;">
    <p>muhahaha</p>
</div>

正如你所看到的,第一篇文章很简单,我可以展示它,它看起来不会疯狂。但是第二篇文章可能会完全改变我的页面布局(没有经过测试,但你明白了。

<html>
<head>...</head>
<body>
    <div class='content'>
        <div class='post'>
            <p><b>This is my post</b></p>
            <p>It has some nice HTML that does not break stuff</p>
        </div>
        <div class='post'>
            </div>
            <div style="height:10000px; width:10000px;">
                <p>muhahaha</p>
            </div>
        </div>
    </div>
</body>
</html>

我知道我可以使用htmlentities,但这会显示没有粗体的第一篇文章,我不希望这样。

stackoverflow网站必须内置这样的东西,我想知道是否有一种简单的方法可以阻止用户通过WYSIWYG编辑器提交改变布局的HTML?

1 个答案:

答案 0 :(得分:0)

CKEditor有一个名为Advanced Content Filter的功能,默认情况下,自动模式通过转换和删除不允许的元素,属性,类和样式来过滤传入的HTML内容。 CKEditor只允许被启用的编辑器功能(按钮,插件)定义为允许的内容。

它也是高度可配置的,因此它可以让您完全控制用户可以和不能提交到您网站的内容。

查看以下资源以了解情况: