检查 iframe 中的 div 是不是在 Firefox 中可见

Posted

技术标签:

【中文标题】检查 iframe 中的 div 是不是在 Firefox 中可见【英文标题】:check if a div inside iframe is visible in Firefox检查 iframe 中的 div 是否在 Firefox 中可见 【发布时间】:2012-12-07 06:03:09 【问题描述】:

我有一个名为 article_frame 的 iframe,其中包含多个 DIV,名为 article_disp_0、article_disp_1 等。 一次只能看到其中一个。

当我在 iframe 之外时,我希望能够看到哪个是可见的,所以我有一个这样的脚本:

// find the currently selected article
for (i=0; i<=a_count; i++) 
    a_disp = "#article_disp_" + i;
    frame_disp = $('#article_frame').contents().find(a_disp);
    visible = frame_disp.is(':visible');
    if (visible) 
        art_div = i;
        break;
    

在 Chrome 或 Safari 中一切正常,但在 Firefox 中却不行。在 Firefox 中似乎没有设置可见值。那么我需要做些什么才能使这项工作与 Firefox 一起使用?

【问题讨论】:

【参考方案1】:
var iframe = document.getElementById('iframeId');
var innerDoc = iframe.contentDocument || iframe.contentWindow.document;

然后

visible = $(innerDoc.getElementById("your ID")).is(':visible');

【讨论】:

好的,我试过了,它在 Safari 中运行良好,但在 Firefox 中仍然不行。这是我现在得到的: var iframe = document.getElementById('article_frame');` var innerDoc = iframe.contentDocument || iframe.contentWindow.document; // find the currently selected article for (i=0; i 1.您是否获得了 DIV 对象引用来测试可见性? 2. 可以测试一下它的 style.display 或 style.visibility 属性吗? 是的,我确实这样做了,而且它有效。 ` disp = $(innerDoc.getElementById(a_disp)).css('display'); if (disp == "block") // 找到可见的`谢谢你的指导。 @abbaroo 不客气,如果此解决方案对您有帮助,请花时间“接受”我的回答。

以上是关于检查 iframe 中的 div 是不是在 Firefox 中可见的主要内容,如果未能解决你的问题,请参考以下文章

如何检查 iframe 中的选择下拉菜单是不是更改?

iframe中的div被另一个iframe挡住

如何使用 jQuery 检查 IFrame 在页面上是不是可见

检查 iframe 内容是不是已经加载

JS 获取iframe中的div高度

PHP / Javascript检查是不是在特定的iframe中运行[重复]