2013-05-24 4 views
1

Привет У меня есть этот скрипт: http://flamencopeko.net/styleswitch.js, который связан со всеми страницами моего сайта http://flamencopeko.net. Он отлично работает, за исключением того, что сохраненные значения не применяются при смене страницы. Разумеется, функциональность и файлы cookie прекрасно. Настройки просто не будут выглядеть визуально.Получить значения cookie для загрузки на смену страницы

function createCookie(name,value,days) { 
    if (days) { 
     var date = new Date(); 
     date.setTime(date.getTime()+(days*24*60*60*1000)); 
     var expires = "; expires="+date.toGMTString(); 
    } 
    else var expires = ""; 
    document.cookie = name+"="+value+expires+"; path=/"; 
} 

function readCookie(name) { 
    var nameEQ = name + "="; 
    var ca = document.cookie.split(';'); 
    for(var i=0;i < ca.length;i++) { 
     var c = ca[i]; 
     while (c.charAt(0)==' ') c = c.substring(1,c.length); 
     if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 
    } 
    return null; 
} 

function increaseTableSize() { 
    var t = document.getElementsByTagName('table'); 
    for(i=0;i<t.length;i++) { 
     t[i].style.width = 1000+"px" 
    } 
} 
function decreaseTableSize() { 
    var t = document.getElementsByTagName('table'); 
    for(i=0;i<t.length;i++) { 
     t[i].style.width = 677+"px" 
    } 
} 
function setTableSize() { 
    var t = document.getElementsByTagName('table'); 
    for(i=0;i<t.length;i++) { 
     t[i].style.width = selectedwidth+"px" 
    } 
} 

function increaseFontSize() { 
    var p = document.getElementsByTagName('td'); 
    for(i=0;i<p.length;i++) { 
     p[i].style.fontSize = 16+"px" 
    } 
} 
function decreaseFontSize() { 
    var p = document.getElementsByTagName('td'); 
    for(i=0;i<p.length;i++) { 
     p[i].style.fontSize = 10+"px" 
    } 
} 
function setFontSize() { 
    var t = document.getElementsByTagName('td'); 
    for(i=0;i<t.length;i++) { 
     t[i].style.width = selectedsize+"px" 
    } 
} 

var selectedwidth=readCookie("peko_table") 
if (document.getElementByTagName && selectedwidth!=null) //load user chosen width from cookie if there is one stored 
setTableSize() 

var selectedsize=readCookie("peko_font") 
if (document.getElementByTagName && selectedsize!=null) //load user chosen font from cookie if there is one stored 
setFontSize() 

Это код из четырех кнопок в toc.php:

<a href="javascript:createCookie('peko_table','600',50); decreaseTableSize();"><img src="/ico/standard.gif" width="12" height="12" hspace="1" vspace="1" />slim</a>/
    <a href="javascript:createCookie('peko_table','1000',50); increaseTableSize();"><img src="/ico/wide.gif" width="12" height="12" hspace="1" vspace="1" />wide</a>/
    <a href="javascript:createCookie('peko_font','10',50); decreaseFontSize();"><img src="/ico/minus.gif" width="12" height="12" hspace="1" vspace="1" />small text</a>/
    <a href="javascript:createCookie('peko_font','18',50); increaseFontSize();"><img src="/ico/plus.gif" width="12" height="12" hspace="1" vspace="1" />large text</a> 

ответ

0

Вы бежите свой JavaScript, прежде чем страница была даже разобран.

Передвиньте JavaScript-код для styleswitch.js из головы непосредственно перед тегом закрывающего тега.

+0

Большое спасибо. Я бы не подумал об этом как навсегда. Теперь все работает, Ли! Я сам нашел пару других ошибок. –

+0

Любой способ ускорить переходы страницы? Стиль по умолчанию всегда отображается примерно секунду. –

+0

@ OleSørensen ха-ха, как работает ваш JavaScript, нет. Лучшим подходом было бы иметь JavaScript в голове, чтобы прочитать файл cookie и изменить «className» вашего HTML-элемента, а затем использовать CSS для установки ширины вашей страницы/размера вашего текста в зависимости от классаName элемента HTML. Итак: перепроектируйте или живите с ним! –

Смежные вопросы