HTML错误。标签未关闭

时间:2013-12-03 17:39:32

标签: javascript html

让我们想象一下这种情况: 在您的网站中,您允许您的用户发布html(当然您必须了解安全问题)。您的用户发布信息:

<div> Main div <div> child div </div>

忘记关闭主要div。 当我提供包含错误html的帖子的页面时,我会发送一个混乱的页面。

是否有某种方式或html标记来&#34;封装&#34;或者隔离页面中的部分html并让用户对自己的广告负责?我们的想法是实施一个广告系统,允许用户设计自己的广告。

在设计我自己的页面时,这对于隔离错误也很有用。

非常感谢你。

3 个答案:

答案 0 :(得分:6)

  

是否有某种方法或html标记来“封装”或隔离页面中的部分html并让用户对自己的广告负责?

您可以使用iframe来执行此操作。

或者:浏览器非常容忍破坏的HTML,您可以使用浏览器进行清理。

例如:

var str = "<div>This is broken HTML<div>missing end tags";
var e = document.createElement('div');
e.innerHTML = str; // Parse it
str = e.innerHTML; // Serialize it properly

Live Example | Source

当我使用字符串<div>This is broken HTML<div>missing end tags运行时,我会回来:

<div>This is broken HTML<div>missing end tags</div></div>

某些浏览器可能会使代码全部上限。

或者,使用像JSoup这样的服务器端解决方案(您也可以使用它来清理输入;非常有用!)。你没有提到服务器端语言; JSoup与任何基于JVM的语言兼容,我希望到现在有其他平台的翻译......

答案 1 :(得分:0)

如果使用CKEditorTinyMCE等在线编辑器是您项目的选项,则它们包含HTML验证功能,可以“修复”用户输入的HTML(尽可能最好)或允许您防止用户完全输入某些HTML标记。

答案 2 :(得分:0)

我在我的一个项目中使用CKEditor。

我认为普通用户不会浪费时间处理正确的HTML编码。他们中的大多数人甚至都不懂HTML。

根据我运营的一个分类广告网站的观察结果,用户只需剪切并粘贴广告已发布到的其他网站的广告。如果使用CKEditor从HTML页面剪切和粘贴内容,它就会完全按照原样显示。