2017-07-18 32 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是活動頁面上不再。

相關問題