日期:2014-05-17  浏览次数:20602 次

如何确定在线编辑HTML的合法性
有一个企业网站,用户可以通过后台发布文章,
并且用户可以通过在线编辑器,编辑文章内容部份的HTML标签。
现在问题来了,就是如何确保用户通过在线编辑器提交的HTML代码中的HTML标签都完全避合?

因为目前发现这样一个情况,就是从数据库中读出含有HTML代码的文章时,
因为之前数据库中的HTML代码内,有的HTML标签并无闭合标签(比如,有开始的<div>却没有</div>),
最后导致的情况就是这样读出来的文章,会破坏掉我现有页面的布局及样式,
这种情况你们怎么解决?

完全过滤HTML是不可能的,因为用户要求保留编辑样式功能,但如何确保用户提交的HTML标签的合法性?


========================================有点乱,见谅======================================
HTML 标签 编辑器 过滤

------解决方案--------------------
A、用IFRAME作为自封闭的容器来显示用户文章,他编辑时啥样还啥样,不会影响你的布局。
B、接收提交的编辑内容后用处理函数检查闭合性(相对并不难,因为大多都是先进后出式的嵌套结构,少数单标签或复合标签也是有规律的),但要面临选择:是返回错误,还是自动更正?

从难易度讲,建议用A方案吧。
------解决方案--------------------

1、用户是要保留HTML代码编辑功能?一般用户都是不懂html的,更加不熟悉DIV布局;
2、一般网站编辑器都有“文本模式”(默认)和“代码模式”,而用户输入直接在【文本模式】。更无须涉及HTML的闭合。。
3、如果要折腾的话,写个正则吧,可以检查(匹配)HTML的合法性