Как я могу выполнить функцию JavaScript, чтобы использовать другую таблицу стилей? - PullRequest
0 голосов
/ 16 февраля 2011

Я хочу показать другую таблицу стилей, если мое приложение загружено в iframe. Какое событие javascript я использую, чтобы выполнить эту проверку, и как мне обслуживать другую таблицу стилей?

EDIT:

Я попытался связать это с событием onLoad тела:

    <script type="text/javascript">
        function checkFrame() {
            if (window.top!=window.self)
            {
                // In a Frame or IFrame
                document.write("<link rel='stylesheet' type='text/css' href='/custom/embedded'>");
            }
            else
            {
                // Not in a frame
                document.write("<link rel='stylesheet' type='text/css' href='/custom/standard'>");
            }
        }
    </script>

но на пустой странице отображается только ссылка на таблицу стилей.

Ответы [ 5 ]

1 голос
/ 17 февраля 2011

В List Apart есть довольно приятный переключатель стиля.

http://www.alistapart.com/articles/alternate/

1 голос
/ 16 февраля 2011

Если window.parent не равен == null, то вы находитесь в кадре.Вы также можете получить доступ к информации о содержащей странице таким образом.

Вы можете подключиться к событию загрузки тела.

1 голос
/ 16 февраля 2011

Я использовал jQuery для переключения таблиц стилей на лету. Я уверен, что есть чистый JS равный. Предполагая, что ваш <head>....</head> содержит

<link type='text/css' rel='stylesheet' href='styles.php?theme=default' />

тогда вы можете перезагрузить ваши CSS-файлы (или тот же CSS-файл с переданными значениями) следующим образом

 $('link').attr('href','styles.php?theme=' + newTheme); 
1 голос
/ 16 февраля 2011

Посмотрите в window.parent. Если это не нуль, то вы внутри фрейма. Я не думаю, что есть «событие», которое запускает.

0 голосов
/ 17 февраля 2011

Вот что я в итоге сделал в jQuery. Я это слишком усложнил.

$(function() {

    if (window.top!=window.self) {
        // my css switcher
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...