如何检查iframe是否为空/ null / undefined?

时间:2010-11-18 14:43:11

标签: javascript jquery html browser iframe

这不起作用:

if(document.getElementById("iframe").innerHTML==''){

是否有安全的浏览器可靠的方法来检查iframe是否为空?

由于

2 个答案:

答案 0 :(得分:6)

如果您可以使用jQuery,请检查它的length属性。这是跨浏览器兼容的。如果它为零,则不存在。像这样:

if(!$("#iframeid").length) {
    // iframe doesn't exist
}

修改

在看到您对您的问题的评论之后:

如果您想检查iframe中是否没有加载页面,而iframe不是跨域,您可以检查iframe中是否存在body标记。如果它存在,那么加载的东西。

这样的事情:

if($("#iframeid").contents().find("body").length) {
    // some html page loaded in iframe
}

如果iframe是跨域名,则same-origin policy会阻止您。否则这将有效。

答案 1 :(得分:3)

检查框架的contentDocument属性。 IE 7及更早版本支持contentWindow属性,但在http://www.w3schools.com/jsref/prop_frame_contentdocument.asp有一个简单的跨浏览器示例。

一种不太可靠的方法,但可能是你想要的......检查src属性。

您可以在http://www.w3schools.com/jsref/dom_obj_frame.asp

了解其他框架属性