Изменение атрибутов IFrame из источника IFrame. Является ли это возможным?
-
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.