Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Java скрипт за смяна на облика на сайт. Как да го накарам да помни бисквитките?

Featured Replies

Здравейте! Направил съм два облика (css стила) на сайт, които да се сменят от хората, които го преглеждат. Проблемът е,че не помни какво последно му е зададено и при опресняване или навигация към друга страница, се връща на темата, която е на подразбиране.

За запомняне чрез бисквитки от браузера на потребителя, съм задал в index.php:

<body onload="set_style_from_cookie()">
Уж там е ключът към палатката, но не се получава.

Ето го и java скрипта:

<script type="text/javascript">

// *** TO BE CUSTOMISED ***

var style_cookie_name = "style" ;

var style_cookie_duration = 30 ;

// *** END OF CUSTOMISABLE SECTION ***

function switch_style ( css_title )

{

var i, link_tag ;

for (i = 0, link_tag = document.getElementsByTagName("link") ;

i < link_tag.length ; i++ ) {

if ((link_tag.rel.indexOf( "stylesheet" ) != -1) &&

link_tag.title) {

link_tag.disabled = true ;

if (link_tag.title == css_title) {

link_tag.disabled = false ;

}

}

set_cookie( style_cookie_name, css_title,

style_cookie_duration );

}

}

function set_style_from_cookie()

{

var css_title = get_cookie( style_cookie_name );

if (css_title.length) {

switch_style( css_title );

}

}

function set_cookie ( cookie_name, cookie_value,

lifespan_in_days, valid_domain )

{

var domain_string = valid_domain ?

("; domain=" + valid_domain) : '' ;

document.cookie = cookie_name +

"=" + encodeURIComponent( cookie_value ) +

"; max-age=" + 60 * 60 *

24 * lifespan_in_days +

"; path=/" + domain_string ;

}

function get_cookie ( cookie_name )

{

var cookie_string = document.cookie ;

if (cookie_string.length != 0) {

var cookie_value = cookie_string.match (

'(^|; )[\s]*' +

cookie_name +

'=([^;]*)' );

return decodeURIComponent ( cookie_value[2] ) ;

}

return '' ;

}

</script>

Много ще се радвам ако някой помогне да изляза от омагьосания кръг.

Редактирано: 24 часа по - късно:

Оправих се ;) . Един пич е надраскал още през далечната 2001-ва година решението. Тъй като може да има и други хора със същите перипетии, публикувам кода:

function setActiveStyleSheet(title) {

var i, a, main;

for(i=0; (a = document.getElementsByTagName("link")); i++) {

if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {

a.disabled = true;

if(a.getAttribute("title") == title) a.disabled = false;

}

}

}

function getActiveStyleSheet() {

var i, a;

for(i=0; (a = document.getElementsByTagName("link")); i++) {

if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) return a.getAttribute("title");

}

return null;

}

function getPreferredStyleSheet() {

var i, a;

for(i=0; (a = document.getElementsByTagName("link")); i++) {

if(a.getAttribute("rel").indexOf("style") != -1

&& a.getAttribute("rel").indexOf("alt") == -1

&& a.getAttribute("title")

) return a.getAttribute("title");

}

return null;

}

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 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;

while (c.charAt(0)==' ') c = c.substring(1,c.length);

if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);

}

return null;

}

window.onload = function(e) {

var cookie = readCookie("style");

var title = cookie ? cookie : getPreferredStyleSheet();

setActiveStyleSheet(title);

}

window.onunload = function(e) {

var title = getActiveStyleSheet();

createCookie("style", title, 365);

}

var cookie = readCookie("style");

var title = cookie ? cookie : getPreferredStyleSheet();

setActiveStyleSheet(title);

Редактирано от Erlkönig (преглед на промените)

Регистрирайте се или влезете в профила си за да коментирате

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    32%
    Дарени 315 € от нужните 1 000 €

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.