2017-07-18 31 views
0

背景: 我有一个网站,它有多个在服务器B上运行的选项卡。其中一个选项卡包含一个加载基于Angularjs的站点的iframe在一个单独的服务器(服务器A)上。该网站每10秒刷新一次,以检查其他地方所做的更改。当不在该选项卡上时,我想阻止这些呼叫。我需要找到一种方法来检测页面是否呈现,并阻止来自服务器A内部的呼叫。如何检测是否在Chrome中呈现iframe中的HTML元素

当前解决方案:在Firefox中,我已经使用getBoundingClientRect()元件。当另一个标签被加载时,该值会改变,因此可以检查它并阻止呼叫。 尽管这在Chrome中不起作用。交换标签时,该值不会更改。

有没有人有任何建议或经验呢?需要能够在所有浏览器中运行的解决方案。

+0

[Detect If Browser Tab has Focus]可能的重复(https://stackoverflow.com/questions/7389328/detect-if-browser-tab-has-focus) – jmargolisvt

+0

您可以使用'window.location.ancestorOrigins'在Firefox,Firefox的Chrome,Chromium和'document.domain'中,请参阅[用于检测此页面是否位于跨域iframe中的简单方法](https://stackoverflow.com/q/21751377/) – guest271314

+0

[Is有一种方法可以检测浏览器窗口当前是否处于活动状态?](https://stackoverflow.com/questions/1060008/is-there-a-way-to-detect-if-a-browser-window-is-不,当前活动) –

回答

0

谢谢你的建议。

此使用固定: parent.document.getElementsByTagName( 'IFRAME')[0] .getBoundingClientRect()顶部

在所有的浏览器将该值变更时的IFRAME是活动页面上不再。

相关问题