как заставить Chrome повторно отображать iframe

#javascript #html #google-chrome #iframe

#javascript #HTML #google-chrome #iframe

Вопрос:

Может ли кто-нибудь предложить какой-либо специфичный для Chrome код, чтобы заставить его повторно отображать iframe? Мы наблюдаем это действительно странное явление, когда периодически iframe, который мы загружаем на страницу, будет полностью белым. При наведении курсора мыши можно даже увидеть теги заголовков базовых элементов. Как только вы пытаетесь проверить его в отладчике, он мгновенно исправляется. Он также исправляется при изменении размера страницы / iframe. Мы не смогли придумать способ программного определения, когда это происходит, хотя b / c это просто кажется странной ошибкой, когда Chrome не отображает ее. Есть ли код, специфичный для chrome, чтобы указать ему выполнить цикл повторного рендеринга? (простое отображение / скрытие jquery не влияет на это) Заранее спасибо за любые предложения!

вы все еще можете видеть теги заголовка при наведении курсора мыши и получать доступ к элементам dom через javascript

Ответ №1:

В Chrome код для перезагрузки iframe (с использованием чистого JavaScript):

  1. document.getElementById('iframeID').location.reload();
  2. document.getElementById('iframeid').src = '';

Первый метод перезагружает iframe, вызывая этот reload() метод, второй метод перезагружает iframe, добавляя пустую строку, которая заставляет iframe перезагружаться.

Комментарии:

1. спасибо за предложение, но изменение URL-адреса iframe на самом деле, похоже, вызывает проблему b / c, если мы изменим размер браузера, чтобы устранить проблему, она повторяется, когда пользователь переходит к новому URL-адресу в iframe.

2. @jessieloo В этом случае вы можете попробовать вариант 1

Ответ №2:

Возможно, вы сможете принудительно перерисовать CSS iframe. Один из трюков — прочитать высоту

document.getElementById("yourIframe").contentDocument.documentElement.offsetHeight