Как я могу контролировать фоновое изображение и цвет элемента тела внутри iframe
? Обратите внимание, что встроенный элемент body имеет класс и iframe
является частью страницы, которая является частью моего сайта.
Причина, по которой мне это нужно, заключается в том, что моему сайту назначен черный фон для тела, а затем белый фон для элементов div, содержащих текст. Редактор WYSIWYG использует iframe
для встраивания контента при редактировании, но он не включает в себя div, поэтому текст очень трудно читать.
В теле iframe
оператора when есть класс, который больше нигде не используется, поэтому я предполагаю, что он был помещен туда, чтобы такие проблемы могли быть решены. Однако, когда я применяю стили к ним, class.body
они не переопределяют стили, применяемые к телу. Странно то, что стили появляются в Firebug, поэтому я понятия не имею, что происходит!
Спасибо
ОБНОВЛЕНИЕ - Я попробовал решение @ mikeq добавить стиль к классу, который является классом тела. Это не работает при добавлении в таблицу стилей главной страницы, но работает при добавлении с Firebug. Я предполагаю, что это потому, что Firebug применяется ко всем элементам на странице, тогда как CSS не применяется внутри фреймов. Означает ли это, что добавление CSS после загрузки окна с JavaScript будет работать?
источник
<div>
банку может быть временным решением (если это разрешено с помощью CORS-заголовка) ... (и «санация» загруженных данных с помощью регулярных выражений в кстати. Да все взломанные ...)Ответы:
Iframe - это «дыра» на вашей странице, которая отображает другую веб-страницу внутри него. Содержимое iframe не имеет формы и не является частью вашей родительской страницы.
Как уже говорили другие, ваши варианты:
источник
Приведенное ниже работает только в том случае, если содержимое iframe принадлежит тому же родительскому домену.
Следующий скрипт jquery работает для меня. Протестировано на Chrome и IE8. Внутренний iframe ссылается на страницу, которая находится в том же домене, что и родительская страница.
В этом конкретном случае я скрываю элемент с определенным классом во внутреннем фрейме.
По сути, вы просто добавляете элемент «style» к «head» внутреннего iframe.
источник
Вы не можете изменить стиль страницы, отображаемой в iframe, если у вас нет прямого доступа и, следовательно, владения исходными файлами html и / или css.
Это должно остановить XSS (межсайтовый скриптинг)
источник
У An
iframe
есть другая область действия, поэтому вы не можете получить к ней доступ к стилю или изменить его содержимое с помощью JavaScript.Это в основном "другая страница".
Единственное, что вы можете сделать, это отредактировать свой собственный CSS, потому что с вашим глобальным CSS вы ничего не можете сделать.
источник
Переопределить другой домен
iframe
CSSИспользуя часть ответа SimpleSam5 , я добился этого с помощью нескольких фреймов чата Tawk (их интерфейс настройки хорош, но мне потребовались дополнительные настройки).
В этом конкретном iframe, который отображается на мобильных устройствах, мне нужно было скрыть значок по умолчанию и поместить одно из моих фоновых изображений. Я сделал следующее:
У меня нет домена Таука, и это сработало для меня, поэтому вы можете сделать это, даже если он не из того же родительского домена (несмотря на комментарий Джереми Беккера на ответ Сэма).
источник
Этот код использует ванильный JavaScript. Это создает новый
<style>
элемент. Он устанавливает текстовое содержимое этого элемента как строку, содержащую новый CSS. И он добавляет этот элемент непосредственно в заголовок документа iframe.источник
Blocked a frame with origin xxxxxxxxx from accessing a cross-origin frame.
Боюсь, это не сработаетЕсли у вас есть контроль над страницей, на которой размещен iframe, и страницей iframe, вы можете передать параметр запроса в iframe ...
Вот пример добавления класса в iframe, основанный на том, является ли хостинг-сайт мобильным ...
Добавление iFrame:
Внутри рамки:
источник
У меня есть блог, и мне было очень трудно выяснить, как изменить размер встроенной сущности. Почтовый менеджер позволяет только писать текст, размещать изображения и вставлять HTML-код. Макет блога отзывчив на себя. Он построен с Wix. Однако встроенного HTML нет. Я много читал о том, как невозможно изменить размер компонентов внутри тела сгенерированных фреймов. Итак, вот мое предложение:
Если в вашем iFrame есть только один компонент, т. Е. Ваша сущность, вы можете изменить ее размер. Забудьте об iFrame.
У меня были проблемы с окном просмотра, конкретными макетами для различных пользовательских агентов, и вот что решило мою проблему:
Логика заключается в том, чтобы установить gist (или ваш компонент) css на основе пользовательского агента. Убедитесь, что сначала идентифицировали свой компонент, прежде чем применять его к селектору запросов. Не стесняйтесь посмотреть, как работает отзывчивость .
источник
Возможно, теперь это изменилось, но я использовал отдельную таблицу стилей с этим элементом:
для успешной стилизации встроенных фреймов YouTube ... см. записи блога на этой странице .
источник
присвойте телу своей страницы iframe идентификатор (или класс, если хотите)
затем, также на странице iframe, назначьте фон в CSS
источник