Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Последняя выбранная закладка в куках 
:(
    Опции темы
Bogdan1024
  Дата 20.12.2007, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1436
Регистрация: 28.9.2005
Где: Киев

Репутация: нет
Всего: 13



Есть 2 закладки: "Новости в мире" и "Новости в Украине". Как сделать так чтобы последняя вбранная закладка сохранялась в кукизах? Чтобы пользователь в следующий раз когда зайдёт на сайт увидил бы свою последний раз выбранную закладку?
Код

HotNewsTabControl = function()
{
    TabControl.call(this, "HotNews");
    HotNewsTabControl.element = name;
    
    var but0 = document.getElementById("UANews");
    if (null != but0)
    {
        var page0 = document.getElementById("UANewsView");
        if (null != page0)
        {
            var text0 = but0.innerHTML;
            this._buttons[0] = new TabButton(but0,new TabPage(page0, text0), this );
        }
    }

    var but1 = document.getElementById("WorldNews");
    if (null != but1)
    {
        var page1 = document.getElementById("WorldNewsView");
        if (null != page1)
        {
            var text1 = but1.innerHTML;
            this._buttons[1] = new TabButton(but1,new TabPage(page1, text1), this );
        }
    }
    
    
    this._activePage = this._buttons[0];
}

//class TabControl
//{
    TabControl = function(element)
    {
        this.element = element;
        this._buttons = [];
        this._activePage = null;
    }

    // Прототип класса.
    TabControl.prototype =
    {
        //Переключение страниц
        changeActiveTab : function(button)
        {
            this._activePage.get_page().hide();
            this.rotate(button);
            this._activePage = this._buttons[0];
            this._activePage.get_page().show();
        },

        // Разрушение компонента.
        rotate : function(button)
        {
            var i2 = 0;
            var i3 = 0;
            var fack = true;
            var count = this._buttons.length;
            var newArray = new Array(count);

            for (i1 = 0; i1 < count; i1++)
            {
                if (this._buttons[i1].element.id != button.id && fack)
                {
                    newArray[i1] = this._buttons[i1].get_page();
                    i2++;
                }
                else
                {
                    fack = false;
                }
                if (!fack)
                {
                    this._buttons[i3].set_page(this._buttons[i1].get_page());
                    i3++;
                }
            }
            
            for (i4 = 0; i4 < i2; i4++)
            {
                this._buttons[i3].set_page(newArray[i4]);
                i3++;
            }
            
            for (i4 = 0; i4 < count; i4++)
            {
                this._buttons[i4].element.innerText = this._buttons[i4].get_page().get_text();
                i3++;
            }

        }
    }
//}

//class TabPage
//{
    TabPage = function(element, text)
    {
        this.element = element;
        this._text = text;
    }

    // Прототип класса.
    TabPage.prototype =
    {
        // Инициализация компонента.
        show : function()
        {
            this.element.style.display = "block";
        },

        // Разрушение компонента.
        hide : function()
        {
            this.element.style.display = "none";
        },
        
        get_text : function()
        {
            return this._text;
        },
        
        set_text : function(value)
        {
            this._text = value;
        }
    }
//}


//class TabButton
//{
    TabButton = function(element, page, parent)
    {
        this.element = element;
        this._page = page;
        this._parent = parent;
        
        var fack = this.get_parent();
        
        this.element.onclick = elementClick;
        
        function elementClick()
        {
            fack.changeActiveTab(this);
            return false;
        }
    }
    
    // Прототип класса.
    TabButton.prototype =
    {
        
        get_page : function()
        {
            return this._page;
        },
        
        set_page: function(value)
        {
            this._page = value;
        },
        
        get_parent : function()
        {
            return this._parent;
        },
        
        set_parent: function(value)
        {
            this._parent = value;
        }
    }
//}
HotNewsTabControl.prototype = new TabControl(this);

Как вообще кукизы в джаваскрипте на клиенте добавляются?


--------------------
user posted image
PM MAIL   Вверх
ksnk
Дата 20.12.2007, 19:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 84
Всего: 386



Цитата(Bogdan1024 @  20.12.2007,  17:49 Найти цитируемый пост)
Как вообще кукизы в джаваскрипте на клиенте добавляются? 

Да, добавляются...
Код

/**
 * @example  cookie('sample') - получить значение куки
 * @example  cookie('sample','value',{expires:10}) - поставить куку на 10 дней
 */
// поставить куку cookie.
function cookie(name,value,opt){
    if (typeof value != 'undefined') { // name and value given, set cookie
        opt = opt || {};
        if (value === null) {
            value = '';
            opt.expires = -1;
        }
        var expires = '';//expires:10
        if (opt.expires && (typeof (opt.expires) == 'number' || opt.expires.toUTCString)) {
            var date;
            if (typeof opt.expires == 'number') {
                date = new Date();
                date.setTime(date.getTime() + (opt.expires * 24 * 60 * 60 * 1000));
            }
            else {
                date = opt.expires;
            }
            expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
        }
        document.cookie = name + '=' + encodeURIComponent(value) + expires +
            (opt.path ? '; path=' + opt.path : '') +
            (opt.domain ? '; domain=' + opt.domain : '') +
            (opt.secure ? '; secure' : '')
    }
    else { // only name given, get cookie
        if (document.cookie && document.cookie != '') {
            var cook = (new RegExp(";\\s*" + name + "\\s*=([^;]+)")).exec(';' + document.cookie);
            return cook && decodeURIComponent(cook[1]);
        }
        return null;
    }    
}




--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0446 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.