Я бы хотел загрузить внешние веб-сайты в iframe, и если какой-либо из этих сайтов использует использование блока блокировки кадров, я хотел бы перенаправить пользователя на страницу с ошибкой. Там было несколько предложенных способов сделать это:Обнаружение, если iframe src является отображаемым
- ждать таймаута OnLoad
- увидеть, если содержимое IFrame ЦСИ HTML являются «пустой» после того, как он загружает
- Попробуйте поймать ошибку
- Поддерживайте база данных «занесенных в черный список» URL-адресов
До сих пор удручающе, у меня была самая удача с последним предметом. Другие методы не работают по следующим причинам:
- ждет тайм-аут OnLoad:
- OnLoad событий огонь даже с сайтов, которые используют кадр убийц. Например, если я попытаюсь получить доступ к www.google.com, он просто загрузит пустую структуру html.
- увидеть, если содержимое IFrame ЦСИ HTML являются «пустой» после того, как он загружает
- Вы не может получить доступ к внешнему содержимому ГКЗА в IFRAME из-за ту же политику происхождения.
- Попытка поймать ошибку:
- В моем понимании я могу найти только функцию обработки ошибок, которые относятся к ошибкам, вытекающим из вашего локального кода JS, и ничего, связанная с ошибками, как
"Refused to display <URL> in a frame because it set 'X-Frame-Options' to 'SAMEORIGIN'
/'DENY'"
.
- В моем понимании я могу найти только функцию обработки ошибок, которые относятся к ошибкам, вытекающим из вашего локального кода JS, и ничего, связанная с ошибками, как
- Ведение базы данных «черный список» URL:
- Это, очевидно, плохое решение, это некомплексность и большой список ха-ха.
Может быть, я недоразумение один из этих методов. Есть ли решение, в котором я отсутствует? Для контекста я делаю это в основном в JS + jQuery.
Провел много часов по этому же самому вопросу один раз и так и не нашел решения. Любопытно, если кто-то появится – charlietfl
Хотя одна вещь, которую я никогда не делал, - это использовать скрипт на стороне сервера, чтобы сделать запрос на голову. Это может быть что-то стоящее. – charlietfl
Хмм, это действительно стоит –