Как можно менять стиль (CSS) содержимого iframe?

big boy
На сайте с 18.11.2006
Offline
327
20711

На моём сайте есть сервис поиска по определённой базе, который хочу разрешить встраивать на другие сайты.

Хочу, чтобы вебмастеры, которые будут его себе встраивать, имели возможность настраивать стиль под свой дизайн. Если делать iframe, то через обычный CSS изменения в силу не вступают даже вместе с !important, так как содержимое фрейма лежит на другом сайте.

В идеале нужен универсальный код, в котором будут прописаны цвета и стили элементов (в основном текст).

Собственно вопрос в том, как можно сие реализовать? С javascript не знаком, но уверен, что такую задачу можно решить с помощью него (по принципу той же контекстной рекламы), так что если подскажите хотя бы пример реализации - это было бы очень здорово.

✔ Как я генерирую статьи через ИИ, которые приносят трафик - https://webmasta.ru/blog/16-vkalyvayut-roboty-ne-chelovek-stati-s-pomoschyu-ii-kotorye-prinosyat-trafik
SeVlad
На сайте с 03.11.2008
Offline
1609
#1
big boy:
Собственно вопрос в том, как можно сие реализовать?

Пишешь отдельный файл, который принимает параметры (по гет) и выдаёт результат. Это будет типа АПИ, к которому сторонние юзеры обращаются и получают то, что выдаст этот файл. И никаких ифреймов не нужно. Стили, ессно, вебмастеры могут сами настроить.

Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
big boy
На сайте с 18.11.2006
Offline
327
#2
SeVlad:
Пишешь отдельный файл, который принимает параметры (по гет) и выдаёт результат. Это будет типа АПИ, к которому сторонние юзеры обращаются и получают то, что выдаст этот файл. И никаких ифреймов не нужно. Стили, ессно, вебмастеры могут сами настроить.

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

---------- Добавлено 24.07.2014 в 20:46 ----------

Все варианты изменения css фреймов через js, которые погуглил, почему-то не работают (руки кривые наверное). Да и решения все монструозные, а нужно в идеале максимально минималистично.

SeVlad
На сайте с 03.11.2008
Offline
1609
#3
big boy:
Так что отдавать голые данные - не вариант.

Так что отдавать - зависит от того, что ты сам захочешь :) Возьми, например, счётчики или погодные информеры. Юзер вставляет код типа:

site.com/api.php?theme=5&width=450&bordercolor=red

В результате что-то "настраивается" в передаваемых параметрах, что-то в локальном css, а что-то совсем не настраиваемо (тот же блок с беклинком). В результате получает

<div style="width:450; border-color:red;">
<div>
результат
</div>
<a href="site.com">подарок от суперсервиcа</a>
</div>

ИМХО всё достаточно и просто и гибко.

big boy
На сайте с 18.11.2006
Offline
327
#4
SeVlad:
Так что отдавать - зависит от того, что ты сам захочешь :) Возьми, например, счётчики или погодные информеры. Юзер вставляет код типа:
site.com/api.php?theme=5&width=450&bordercolor=red

В результате что-то "настраивается" в передаваемых параметрах, что-то в локальном css, а что-то совсем не настраиваемо (тот же блок с беклинком).

Таким способом через get придётся передавать слишком много параметров, что создаст очень большую ссылку.

Но вы меня натолкнули на идею, за что спасибо!

На моём сайте делаю небольшой скрипт с формой, где можно прописать необходимые стили и цвета - он генерирует CSS с уникальным именем (id). По завершению юзер получает код для вставки на сайт в виде:

<iframe src="http://site.ru/api.php?id=7777"></iframe>

7777 - через тот же get хватает нужный css :)

SeVlad
На сайте с 03.11.2008
Offline
1609
#5
big boy:
Таким способом через get придётся передавать слишком много параметров, что создаст очень большую ссылку.

Ну можно передавать только самое необходимое, а всё остальное (стили) оставить на усмотрение юзера.

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

big boy
На сайте с 18.11.2006
Offline
327
#6

Решили пойти еще чуть дальше.

Скрипт пишет конфиг - форма с полями, заполняются цвета, размеры и тд., всё пишется в массив, а значения подставляются в css.

То есть получается, что не надо городить кучу css файлов, да и массивы гораздо проще читать и писать из файлов. Второй плюс - в массив можно писать какие угодно данные, то есть расширить возможности по пользовательской настройке. К примеру отключение некоторых элементов.

lomster7
На сайте с 09.05.2011
Offline
84
#7

Слежу за темой, тоже надо такое, ТС, отпишешь если удастся поменять содержимое (стили) iframe'а.

была реклама, а уже нету :)
big boy
На сайте с 18.11.2006
Offline
327
#8
lomster7:
Слежу за темой, тоже надо такое, ТС, отпишешь если удастся поменять содержимое (стили) iframe'а.

Скрипт уже готов, осталось концы связать. Как доделаю - отпишусь о результате.

lomster7
На сайте с 09.05.2011
Offline
84
#9

Ок, если получится будет очень славно :)

Просто, на сколько я помню, поменять содержимое iframe'а нельзя, просто потому что политикой безопасности браузеров нельзя вот и всё.. (кардинг, биллы и тд)

Но если у тя получится поменять стили css будет отлично :) Т.как возможно это не входит в политику безопасности, ибо не внедряется сторонний код, других сайтов.

big boy
На сайте с 18.11.2006
Offline
327
#10
lomster7:
Ок, если получится будет очень славно :)

Получилось. Скрипт работает, пишите в личку, если нужен.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий