Как определить, что БРАУЗЕР блокирует iFrameHtml

Программисты Html
Ответить
Anonymous
 Как определить, что БРАУЗЕР блокирует iFrame

Сообщение Anonymous »

На веб-сайте https я пытаюсь загрузить случайно отправленные URL-адреса в iframe, позволяя пользователю видеть этот веб-сайт, встроенный в мой собственный пользовательский интерфейс.

Пока удаленный URL-адрес https (как и мой собственный сайт) и удаленный сервер явно не блокирует себя от встраивания в iframe, веб-сайт отлично отображается внутри iframe. Я знаю, как создать серверный скрипт, который может заранее определить, будет ли iframe заблокирован из-за преднамеренной блокировки iframe третьей стороной.

Однако существует ряд причин, по которым iframe блокируется браузером (а не сторонним сервером):
  • Если удаленный URL-адрес не https, или перенаправляет на URL-адрес, отличный от https,
    он будет заблокирован (браузером) от отображения в iframe.
  • Если удаленный сайт действительно https, но содержит хотя бы один
    ресурс, обслуживаемый http (вместо https), браузер заблокирует
    iframe из-за смешанного содержимого.
Мой вопрос конкретно заключается в следующем: как я могу обнаружить на стороне клиента javascript, когда браузер заблокировал iframe. Я хочу, чтобы мой клиентский javascript обнаруживал блокировку и ее причину (я знаю, как ее регистрировать, если могу ее обнаружить).

В целом, я уже знаю, как определить, когда третья сторона блокирует iframe (с помощью серверных сценариев). Меня интересуют только ответы, которые показывают, как определить, когда веб-браузер выполняет блокировку, и как обнаружить это с помощью клиентского JavaScript.

Я вижу эти нефатальные блоки в консоли (shift-ctrl-i), но не знаю, как программно обнаружить их во время выполнения, а затем корректно обработать блоки, предоставив сообщение о том, почему они были заблокированы, и ссылку, чтобы пользователь мог открыть ресурс в новой вкладке. Например, обычно я улавливаю ошибки с помощью операторов try/catch, но не знаю, как отловить эти ошибки на уровне браузера, возникающие из-за местоположения источника iframe, которые, кажется, появляются только в консоли.

Мой приоритет — отображать страницу в iframe каждый раз, когда она не заблокирована, и программно делать что-то еще каждый раз, когда она блокируется.

Это не работает, но это пример чего-то Я пробовал:

Код: Выделить всё

window.addEventListener('error', function(event)
{
console.log(`Caught Using Javascript`, event);
});
Ошибка отображается в консоли, но сообщение «Поймано с помощью Javascript» нет:
Изображение


Подробнее здесь: https://stackoverflow.com/questions/593 ... -an-iframe
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Html»