Перезагрузить iFrame CSS - PullRequest
       1

Перезагрузить iFrame CSS

1 голос
/ 01 декабря 2011

У меня тут проблема.Я разрабатываю систему, которая поддерживает тему CSS.Пока все нормально, я могу изменить тему по своему желанию, но система состоит из двух частей:

Первый - это «скелет» системы: он содержит меню и опции для изменения темы.Это меню загружает содержимое второй части, которая по существу состоит из iFrame, который загружает модули, вызываемые щелчками по меню.

Я могу изменить тему первой части системы, используя следующий код:

$("link").attr("href", "css/temas/"+theme_name+".css");

Название темы можно получить, прочитав ссылку в меню.Система в порядке, и никаких изменений не требуется.Помимо изменения основной темы, она записывает cookie-файл, который используется для чтения для дальнейшей тематики системы.

Итак, вторая часть системы также считывает этот cookie-файл для применения темы, но он не изменяется сразу, так какосновная часть делает!

Например, когда я щелкаю по значку темы, он мгновенно применяет тему, не обновляя экран, но этого не происходит со второй частью!Применима тема, но она отображается только в том случае, если я перезагружаю iFrame, а перезагрузка не крутая!

Я пытаюсь изменить тему iFrame следующим кодом:

$("#ifr_main link").attr("href", theme_name);

Где #ifr_main - это имя iFrame!

Кто-нибудь знает, как я могу понять это и применить новый CSS без необходимости обновлять страницу, как я делаю в меню?

Заранее спасибо!=)

Ответы [ 2 ]

3 голосов
/ 01 декабря 2011

Прежде чем пытаться выбрать элемент ссылки, вам нужно сначала выбрать содержимое iFrame.

$("#ifr_main").contents().find("link").attr("href", theme_name);

Примечание: iFrames могут быть некрасивыми:)

0 голосов
/ 01 декабря 2011

Это потому, что содержимое iframe было загружено при загрузке вашей страницы, поэтому после него вы не сможете изменить его внешний вид, если не используете методы JQuery / ajax или не перезагружаете.
Йо может найти несколько вопросов об этом
здесь , здесь и здесь

возможно, вы можете перезагрузить свой ifreame через ajax, читайте здесь
Наконец, вы должны посмотреть это видео для более уникального пути.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...