【问题标题】:How to validate HTML code using javascript如何使用 javascript 验证 HTML 代码
【发布时间】:2015-03-14 20:56:45
【问题描述】:

我想在使用 JavaScript 时将 html 代码动态呈现到 iFrame 中。

事先我想验证我的 html 代码在语法上是否正确。

有没有内置的方法来实现这一点。

【问题讨论】:

  • 我宁愿使用一种常见的框架来创建 html 而不是验证“手工制作”的 html - 除非您需要验证用户提供的 html 代码。
  • Filburt 这似乎是一个不错的选择......但我正在为用户提供编写 html 内容的权限,这些内容将在完全验证后显示在 iFrame 中

标签: javascript angularjs html iframe


【解决方案1】:

你可以像这样创建一个函数:

function validateHTML(html) {
  var elem = document.createElement('div');
  elem.innerHTML = html;
  return (elem.innerHTML===html);
}

但这取决于浏览器,所以它不会给出 100% 的结果。最好不要验证,而是尝试使其正确:

function correctHTML(html) {
  var elem = document.createElement('div');
  elem.innerHTML = html;
  return elem.innerHTML;
}

希望对你有帮助。

【讨论】:

  • 这个函数对标签的打开和关闭效果很好..但是不能检查单引号或双引号的打开和关闭。
  • DOM Parsing and Serialization specification 不要求序列化的结果与输入标记相同,只要求从两者创建的 DOM 相同。因此,鉴于单个字符的差异将返回 false,因此在两者之间进行字符串比较对于非平凡的标记肯定会失败。例如。 <table><tr><td></table> 是有效的标记,但可能(不一定)用 TR 和 TD 的结束标签序列化。序列化还可能包含 TBODY 标签。
  • 那么有什么方法可以检查有效的html代码
【解决方案2】:

有一个 W3C 标记验证器 Web 服务,它有一个 SOAP 1.2 interface

【讨论】:

  • 无法打开此链接
【解决方案3】:

很抱歉回答我自己的问题

完美的解决方案是

http://ejohn.org/blog/pure-javascript-html-parser/

易于实施和明确的解决方案

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-05
    • 1970-01-01
    • 2011-04-06
    • 1970-01-01
    • 1970-01-01
    • 2010-12-04
    • 1970-01-01
    相关资源
    最近更新 更多