Мелькает белый фон перед загрузкой страницы
Доброго времени суток!
У меня есть проблема со скриптом, который меняет стили и запоминает выбранный стиль с помощью куки. Проблема заключается в том, что при загрузке или обновлении страницы сайта на долю секунды появляется белый фон, а уже потом прогружаются стили. ![]() На другом сайте, где используется тот же скрипт, всё загружается нормально. Почему у меня так? Сам скрипт: <link id="jdyncss" rel="StyleSheet" href="/css/des1.css" /> function setjDynCSS(url){ if(!arguments.length){url=(url=document.cookie.match(/\bjdyncss=([^;]*)/))&&url[1];if(!url)return''} document.getElementById('jdyncss').href=url;var d=new Date();d.setFullYear(d.getFullYear()+1);document.cookie=['jdyncss=',url,';expires=',d.toGMTString(),';path=/;'].join('');return url } setjDynCSS(); И кнопки смены дизайна: <a href="javascript://" onclick="setjDynCSS('/css/des1.css')">Дизайн #1</a> <a href="javascript://" onclick="setjDynCSS('/css/des2.css')">Дизайн #2</a> |
Скрипт должен быть в самом верху, сразу после link(а лучше вместо, но переписывать же вы не будете).
|
Aetae, Скрипт и так в самом верху, сразу после link.
Пробовала разные варианты, но результат один и тот же. В head стоит конструкция: <link id="jdyncss" rel="StyleSheet" href="/css/des1.css" /> <script src="/css/smenadiz.js"></script> <script src="/.s/src/jquery-1.10.2.js"></script> Где smenadiz.js - вышеописанный скрипт. Улучшения в загрузке наступали после того, как я забивала head "лишними скриптами" по типу: <link id="jdyncss" rel="StyleSheet" href="/css/des1.css" /> <script src="/css/smenadiz.js"></script> <script src="/.s/src/jquery-1.10.2.js"></script> <script src="/.s/src/jquery-1.10.2.js"></script> <script src="/.s/src/jquery-1.10.2.js"></script> <script src="/.s/src/jquery-1.10.2.js"></script> Белый фон не появляется даже при Ctrl+F5, но это явно не вариант - забивать мусором head. Такие дела. |
Странно всё это. Попробуйте подключить этот вариант скрипта вместо вашего. (<link ... надо убрать вообще).
. (function(url){ document.write('<link id="jdyncss" rel="stylesheet" href="' + (url && url[1] || '/css/des1.css') + '" />'); })(document.cookie.match(/\bjdyncss=([^;]*)/)); function setjDynCSS(url) { if (!url) { url = (url = document.cookie.match(/\bjdyncss=([^;]*)/)) && url[1]; if (!url) return '' } document.getElementById('jdyncss').href = url; var d = new Date(); d.setFullYear(d.getFullYear() + 1); document.cookie = 'jdyncss=' + url + ';expires=' + d.toGMTString() + ';path=/;'; return url } Если не поможет - попробуйте убрать другие скрипты на странице. |
Цитата:
Что касательно "убрать другие скрипты" - я их все убирала, меняла местами, сокращала, добавляла другие, но ничего не помогало. Зато на другом сайте всё работает легко и просто, хотя там напичкано в два раза больше скриптов. |
Часовой пояс GMT +3, время: 00:50. |