【问题标题】:Detect if IFRAME's document is malformed检测 IFRAME 的文档是否格式错误
【发布时间】:2010-10-30 05:53:10
【问题描述】:

我正在将一个页面加载到 IFRAME 中,我想知道下载是否不完整.. 并且 HTML 格式不正确,并且缺少像 </body></html> 这样的结束标记。

有没有办法在 JavaScript 中检测到这一点?

【问题讨论】:

  • 缺少正文和 html 元素结束标记的 HTML 文档并非格式错误 - 它们在规范中被定义为可选。
  • 好点,虽然这在实践中很少见。

标签: javascript html iframe malformed


【解决方案1】:

我不确定您是否可以在不确切知道会发生什么情况并专门对其进行测试的情况下测试格式错误的 HTML 或缺少的元素。

如果您可以访问 iframe 页面的源代码,则可以在绑定到父窗口的 </body> 结束之前调用 javascript 函数变量; (或者使用window.onLoad()事件调用触发调用。)

在您的容器页面中定义此方法。

window.iAmLoaded = function() { 
    alert('iframe loaded OK');
};

然后从 iframe 中调用它;

    <script type="text/javascript" charset="utf-8">    
        window.parent.iAmLoaded();    
    </script>
</body>

如果这不是一个选项,并且 iframe 有一个众所周知的 DOM,或者在页面末尾附近有一个独特的元素,您可以使用 getElementById 或您喜欢的库的 CSS 选择器方法来定位元素。

【讨论】:

    【解决方案2】:

    您可以使用 iframe 的 onLoad 事件来判断其何时完成加载。 http://www.w3schools.com/jsref/jsref_onload.asp

    用于检测格式错误的 html:您正在寻找验证器。浏览器不这样做,除了,也许,对于 xhtml 严格。很可能有js验证软件。

    拉里

    【讨论】:

    • 严格/过渡无关紧要。浏览器会因在 XML 模式下解析任何格式不正确的 XHTML(即当文档以正确的内容类型提供时)而窒息。大多数支持 XHTML 的浏览器将提供在标签汤模式下再次尝试解析。但是,文档可以是格式良好但无效的。
    猜你喜欢
    • 2011-11-30
    • 1970-01-01
    • 2012-08-06
    • 1970-01-01
    • 2012-10-24
    • 2011-04-24
    • 2016-10-31
    • 2011-04-01
    • 2017-05-23
    相关资源
    最近更新 更多