Изменение атрибутов IFrame из источника IFrame. Является ли это возможным?

StackOverflow https://stackoverflow.com/questions/456274

  •  19-08-2019
  •  | 
  •  

Вопрос

На моем компьютере я использую специальный рекламный блок, основанный на перенаправлении HOSTS (поэтому у меня может быть рекламный блок в Chrome). Я использую IIS на своем компьютере, поэтому у меня появляется пользовательская пустая ошибка 404, которая отображается, когда на странице отображается объявление на основе iframe.

Я изменил ошибку 404, чтобы унаследовать ее фоновый цвет от родительского, чтобы объявление не выглядело неприятно на сайтах с не белым фоном. Моя следующая задача - использовать страницу 404, чтобы полностью свернуть <iframe />, чтобы она вообще не отображалась на странице.

Можно ли изменить содержащий тег <=> изнутри iframe? Я просто хочу изменить высоту & Amp; атрибуты ширины, если это возможно. Если так, как бы я поступил так?

Это было полезно?

Решение

Это не должно быть возможно, так как сайты внутри фреймов могут быть внешними. Разрешение им манипулировать средой, в которой они отображаются, представляет угрозу безопасности браузера.

Вам лучше использовать прокси-сервер для блокировки рекламы.

Другие советы

Если я правильно вас понимаю, вы говорите, что хотите, чтобы ваша страница 404 вызывала крах iframe, когда он загружается внутри него. Самый простой способ сделать это - создать функцию на родительской странице, а затем вызвать ее из 404 при загрузке.

Например, если у вашего iframe есть идентификатор " advertFrame " Вы можете добавить следующую функцию javascript на родительскую страницу:

function hideAdvertFrame() {
  var advertFrame = document.getElementById("advertFrame");
  advertFrame.style.height = 0;
  advertFrame.style.width = 0;
}

Затем на странице 404 вы можете вызвать функцию сразу же после ее загрузки:

<body onload="window.parent.hideAdvertFrame();">

Тем не менее, я думаю, что вы все еще можете рассмотреть другие варианты, помимо межкадрового скриптинга, которые менее подвержены дырам в безопасности. Возможно, ваша родительская страница может использовать AJAX, чтобы проверить, будет ли у рекламного блока допустимый URL-адрес перед загрузкой, а затем динамически добавить его на страницу, как только определится.

Страница, которая заполняет iframe, не может ничего изменить в отношении страницы, содержащей iframe. Если бы это было возможно, то это было бы огромным риском для безопасности. Чтобы быть уверенным, я попробовал только то, что вы спрашиваете, используя два домена, которые мне дали в школе. Проще говоря, это не сработало; Я получил сообщение об отказе в разрешении в Firebug.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top