Обнаружить видимость окна, если внутри междоменного iframe - PullRequest
0 голосов
/ 17 октября 2019

Если веб-страница A отображается в <iframe> внутри междоменной веб-страницы B , как узнать, когда A отображается в B ?

Например, если веб-страница A находится значительно ниже при прокрутке документа B ипользователь должен прокрутить вниз, чтобы увидеть его, как узнать, когда пользователь прокрутил достаточно вниз, чтобы увидеть <iframe>.

enter image description here

Есть толькоконтроль / доступ к веб-странице A .

Из-за Политика одинакового происхождения нет доступа к событиям или вычислениям для получения этих данных.

API видимости страницы информирует, только когда веб-страница активна во вкладке браузера.

1 Ответ

0 голосов
/ 17 октября 2019

API Intersection Observer можно использовать для отслеживания изменений в HTMLElement изменениях видимости области просмотра.

Чтобы проверить, когда видимость веб-страницы, элемент body наблюдается, когдапо крайней мере 10% его содержимого является видимым или нет.

const options = { threshold: 0.1 };
const callback = ([bodyElement]) => {
  if (bodyElement.isIntersecting) {
    // Element is visible.
  }
};
const observer = new window.IntersectionObserver(callback, options);

const bodyElement = document.querySelector('body');
observer.observe(bodyElement);

Дополнительные сведения см. в спецификации.

Имейте в виду: это не стандартный API. Таким образом, вам могут понадобиться запасные варианты, и это не поддерживается широко. Также могут возникнуть проблемы с производительностью.

...