partyzanx
@partyzanx

Как в iframe менять css?

Привет. Как менять отдельные css элементы сайта, который находится в iframe.
В частности, мне нужно запретить отображать несколько классов в iframe и сделать некоторые классы шире.

Может уже где есть удачные решения?
  • Вопрос задан
  • 1881 просмотр
Решения вопроса 1
@foxse
Да уж... (по выше написанным ответам)
Я не программист, но вставлю пару строк.
Моя задача сейчас вставить в iframe ссылку с чужого сайта и убрать некоторые блоки.

На исходной странице было:
<iframe id="iframe" src="<?php echo $current_theme_url; ?>" frameborder="0" width="100%" height="100%"></iframe>


Чтобы изменить любые данные в iframe - задаю переменной urlse значение $current_theme_url и передаю её в code.php:
<iframe id="iframe" src="<b>http://vash-site.ru/code.php?urlse=<?php echo $current_theme_url; ?></b>"  frameborder="0" width="100%" height="100%"></iframe>


code.php в корневом каталоге
<?php
$content = file_get_contents($_GET['urlse']);
$content = str_replace('</head>','<link rel="stylesheet" href="http://vash-site.ru/uploads/newstyle.css" /></head>', $content);
echo $content;


Обратите внимание на папку, где будет находиться newstyle.css (нужны разрешения).

Источники:
stackoverflow.com "...Google Calendar"
dontforget.pro/

Опробовал сам вживую, на сервере.

Вся магия со вставками заканчивается, стоит перейти по ссылкам внутри iframe.

Как решить теперь?
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
webinar
@webinar
Учим yii: https://youtu.be/-WRMlGHLgRg
если iframe обращается к другому домену - никак
Ответ написан
Комментировать
serjikz
@serjikz
web-developer
Этого нельзя делать, если страница загружена с чужого домена.
Ответ написан
Комментировать
Bobert88
@Bobert88
Vice President of Javascript, very important guy.
Как указали выше, да действительно нельзя изменить css в iframe со страницы родителя.
В то же время, часто сервисы, которые встраиваются на страницу через iframe (например, платежные сервисы) предоставляют возможность при инициализации передать линк на кастомный css, который они встроят на свою страничку в iframe. Так что если это ваш случай, советую покопаться в документации.

Кусок псевдокода:
const paymentIframe = new PaymentIframe({
   ...
  customCssLink: 'http://mycoolpage.ru/public/payment-custom-stylesheet.css',
  ...
});
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы