zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Javascript & Ajax
Seite neu laden Cookienamen ändern, aber wie?

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 07.01.2009, 17:55
Benutzerbild von Speedy19102000
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 02.12.2007
Beiträge: 46
Speedy19102000 befindet sich auf einem aufstrebenden Ast
Standard Cookienamen ändern, aber wie?

Hallo zusammen!

Ich habe auf meinem Rechner zwei verschieden programierte Seiten,
welche eigendlich unabhängig voneinander sein sollten.

Beide Seiten können z.B. den Hintergrund änder und werden mit ein Cookie durch
das unten angezeigte javascript gespeichert. Mein Problem nur ist, das beide Seiten
auf das gleiche Cookie ansprechen, d.h wenn ich die eine Seite öffne und den
hintergrund ändere, dieses wieder schließe, die andere Seite dann öffne,
wird auf einmal kein Hintergrundbild dargestellt. Ist ja auch logisch,
da beide auf das selbe Cooie ansprechen, der "title" bei beiden Seiten aber ein
anderer ist.

Meine konkrete Frage ist nun:
Was kann ich in diesem javascript ändern,
damit ein Cookie mit einem anderen Namen gesetzt wird?


Hier der Js-Code:
PHP-Code:
function setActiveStyleSheet(title)
{
    var 
iamain;

    for (
0; (document.getElementsByTagName('link')[i]); 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 
ia;

    for (
0; (document.getElementsByTagName('link')[i]); i++)
        if ((
a.getAttribute('rel').indexOf('style') != -1) && (a.getAttribute('title')) && (!a.disabled))
            return 
a.getAttribute('title');

    return 
null;
}

function 
getPreferredStyleSheet()
{
    var 
ia;

    for (
0; (document.getElementsByTagName("link")[i]); 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(namevaluedays)
{
    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 
0ca.lengthi++)
    {
        var 
ca[i];

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

        if (
c.indexOf(nameEQ) == 0)
            return 
c.substring(nameEQ.lengthc.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'title365);
}

var 
cookie readCookie('style');
var 
title  = (cookie) ? cookie getPreferredStyleSheet(); 
Wäre schön, wenn mir bei meinem Problem einer helfen könnte.

MfG
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 07.01.2009, 18:30
Benutzerbild von Gumbo
XHTMLforum-Kenner
 
Registriert seit: 22.08.2004
Ort: Trier
Beiträge: 2.733
Gumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekannt
Standard

Da der Einsatzort beider Cookies vermutlich unterschiedliche URLs besitzt, kannst du diese verwenden, um beide unterscheiden zu können. Erweitere dazu die „createCookie()“-Funktion mal wie folgt:
Code:
function createCookie(name, value, days, path)
{
    var expires = "";
    if (days === undefined) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        expires = ";expires=' + date.toGMTString();
    }
    if (path === undefined) {
        path = ";path=/";
    } else {
        path = ";path=" + path;
    }
    document.cookie = name + '=' + value + expires + path;
}
__________________
Markus Wulftange

Geändert von Gumbo (07.01.2009 um 18:33 Uhr)
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 07.01.2009, 18:35
Benutzerbild von Speedy19102000
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 02.12.2007
Beiträge: 46
Speedy19102000 befindet sich auf einem aufstrebenden Ast
Standard

Hallo Gumbo!

Zitat:
Zitat von Gumbo Beitrag anzeigen
Da der Einsatzort beider Cookies vermutlich unterschiedliche URLs besitzt, ...
Ja, so meinte ich das.

Danke, für den Tip!

Werde ich gleich mal ausprobieren.

MfG
Mit Zitat antworten
  #4 (permalink)  
Alt 07.01.2009, 19:16
Benutzerbild von Speedy19102000
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 02.12.2007
Beiträge: 46
Speedy19102000 befindet sich auf einem aufstrebenden Ast
Standard

Ich habe es jetzt, wie Du es gesagt hast erweitert.

PHP-Code:
function setActiveStyleSheet(title)
{
    var 
iamain;

    for (
0; (document.getElementsByTagName('link')[i]); 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 
ia;

    for (
0; (document.getElementsByTagName('link')[i]); i++)
        if ((
a.getAttribute('rel').indexOf('style') != -1) && (a.getAttribute('title')) && (!a.disabled))
            return 
a.getAttribute('title');

    return 
null;
}

function 
getPreferredStyleSheet()
{
    var 
ia;

    for (
0; (document.getElementsByTagName("link")[i]); 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(namevaluedayspath)
{
    var 
expires "";
    if (
days === undefined) {
        var 
date = new Date();
        
date.setTime(date.getTime() + (days 24 60 60 1000));
        
expires ";expires=' + date.toGMTString()";
    }
    if (
path === undefined) {
        
path ";path=/";
    } else {
        
path ";path=" path;
    }
    
document.cookie name '=' value expires path;
}

function 
readCookie(name)
{
    var 
nameEQ name '=';
    var 
ca     document.cookie.split(';');

    for (var 
0ca.lengthi++)
    {
        var 
ca[i];

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

        if (
c.indexOf(nameEQ) == 0)
            return 
c.substring(nameEQ.lengthc.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'title365);
}

var 
cookie readCookie('style');
var 
title  = (cookie) ? cookie getPreferredStyleSheet(); 
Funktioniert so leider nicht, sobald ich den Style über den Link ändern möchte,
gibt der IE jetzt eine Fehlermeldung "Objekt erwartet" aus.

Muss ich noch weitere Änderungen vornehmen?

MfG

Geändert von Speedy19102000 (07.01.2009 um 20:38 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 07.01.2009, 19:32
Benutzerbild von Gumbo
XHTMLforum-Kenner
 
Registriert seit: 22.08.2004
Ort: Trier
Beiträge: 2.733
Gumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekanntGumbo ist jedem bekannt
Standard

Fällt dir an der Syntaxhervorhebung des Forums nichts auf?
__________________
Markus Wulftange
Mit Zitat antworten
  #6 (permalink)  
Alt 07.01.2009, 19:47
Benutzerbild von Speedy19102000
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 02.12.2007
Beiträge: 46
Speedy19102000 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Gumbo Beitrag anzeigen
Fällt dir an der Syntaxhervorhebung des Forums nichts auf?
Wie bitte?
Was meinst Du jetzt auf einmal damit?

MfG
Mit Zitat antworten
  #7 (permalink)  
Alt 07.01.2009, 20:11
Benutzerbild von Speedy19102000
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 02.12.2007
Beiträge: 46
Speedy19102000 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Gumbo Beitrag anzeigen
Fällt dir an der Syntaxhervorhebung des Forums nichts auf?
Ahhh, habe mal runtergescrollt, ganz schön rot.
Was habe ich denn da falsch gemacht?
Bin leider kein Profi!

Kannst Du mir da weiterhelfen?

MfG
Mit Zitat antworten
  #8 (permalink)  
Alt 07.01.2009, 20:37
Benutzerbild von Speedy19102000
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 02.12.2007
Beiträge: 46
Speedy19102000 befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Gumbo Beitrag anzeigen
Da der Einsatzort beider Cookies vermutlich unterschiedliche URLs besitzt, kannst du diese verwenden, um beide unterscheiden zu können. Erweitere dazu die „createCookie()“-Funktion mal wie folgt:
Code:
function createCookie(name, value, days, path)
{
    var expires = "";
    if (days === undefined) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        expires = ";expires=' + date.toGMTString()";
    }
    if (path === undefined) {
        path = ";path=/";
    } else {
        path = ";path=" + path;
    }
    document.cookie = name + '=' + value + expires + path;
}
Da fehlte wohl was!
Funktioniert leider so auch nicht, hat den geichen Effeckt, wie vorher.

MfG
Mit Zitat antworten
Antwort


Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus



Alle Zeitangaben in WEZ +2. Es ist jetzt 08:19 Uhr.