Javascript 使用jQuery检查框架是否存在
我发现我可以做到以下几点:Javascript 使用jQuery检查框架是否存在,javascript,jquery,Javascript,Jquery,我发现我可以做到以下几点: if($('#notice', parent.frames['header'].document).length>0) { alert("It is here!"); } 检查另一帧中的项目。 有没有办法找出这个框架的存在?具体来说,我想看看是否有parent.frames['header'].document 有可靠的方法可以做到这一点吗 更新: 以下是我的框架集代码: <frameset rows="104,*,22" frameborder="NO
if($('#notice', parent.frames['header'].document).length>0) { alert("It is here!"); }
检查另一帧中的项目。有没有办法找出这个框架的存在?具体来说,我想看看是否有parent.frames['header'].document 有可靠的方法可以做到这一点吗 更新: 以下是我的框架集代码:
<frameset rows="104,*,22" frameborder="NO" border="0" framespacing="0">
<frame src="header.php" id="header" name="header" scrolling="no" title="Header and Menu" noresize>
<frame src="main.php" title="Main content" name="main">
<frame src="footer.php" name="footer" title="Footer" scrolling="NO" noresize>
</frameset>
我试图确保我可以访问“header”中的div。
缺点是,在某些情况下,main会被另一个框架集替换。检查选择器:
if ($("#myFrame").length) alert("It exists!");
如果要知道元素是否存在,必须检查length属性,请参见: 在你的情况下,我认为你想:
if ($('frame[name=header]', parent).length) {
alert('frame exists');
}
为什么要检查长度属性
因为如果向jQuery传递的选择器与任何内容都不匹配,则返回的结果是一个jQuery对象,不是falsy值(null、未定义、0或false),在某种情况下,条件求值为bool,非“falsy”值求值始终为true:
if ($('#nonExisting')) {
alert('always true');
}
// because
!!$('#nonExisting') == true; // and
!!'hello' == true;
!!0 == false;
我用了
作为将任何表达式转换为其布尔等价表达式的简单方法的示例,if语句在幕后所做的
编辑:查看框架集标记,并假设要检查主页面是否存在标题框架,可以通过以下方式轻松完成:
if (parent.header !== undefined) {
// frame exists
}
或者简单地说:
if (parent.header) {
// frame exists
}
检查此示例:
$(“#注意,$(“#我的框架”)。长度
与Josh一样,具有向上投票:向下投票的比率,他更适合在博客或论坛上大摇大摆,而不是如此势利。我尝试了你的第二个例子,如果($('frame[name=header]',parent).length){这似乎对我不起作用。有什么建议吗?
if (parent.header) {
// frame exists
}