Cookies über JavaScript setzen (aus Frame heraus)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Cookies über JavaScript setzen (aus Frame heraus)

    Hallo,

    ich weiß nicht so recht wohin mit meinem Problem, da ich auch noch nicht genau weiß, was der Auslöser dafür ist. Aber vielleicht könnt ihr mir ja weiter helfen.

    Und zwar möchte ich aus einer Flashanimation heraus Cookies ablegen. Das Problem ist, dass der Server kein PHP unterstützt, deshalb hab ich das über JavaScript gelöst.

    Code:
    <script language="JavaScript" type="text/javascript">
    <!--
    function setzeKeks(){
    var zeit=1000*60*60*24*365; // 1 Jahr gueltig
    gueltig = new Date();
    gueltig.setTime(gueltig.getTime()+zeit);
    for(i=0;i<setzeKeks.arguments.length;i++) {
    		keks = setzeKeks.arguments[i] + '=' + setzeKeks.arguments[i+1];
    		i++;
    	document.cookie = keks + '; expires=' + gueltig.toGMTString();
    }
    }
    
    function leseKeks(){
    var movie="osr.maedchendoeppen.spiel.swf"; // name der swf-datei
    var version = "5,0,30,0"; // plugin version
    var breite = "550"; // filmbreite
    var hoehe = "400"; // filmhoehe
    var meinKeks = "?";
    if(document.cookie != ""){
    kekse=document.cookie.split("; ");
    for (i = 0; i < kekse.length; i ++) {
    			meinKeks += kekse[i] + "&"
    		}
    }
    if(meinKeks != "?"){
    
    with(document){
    	writeln('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version='+version+'" width="'+breite+'" height="'+hoehe+'">');
    	writeln('<param name=movie value="'+movie+meinKeks+'">');
        writeln('<param name=quality value=high><PARAM NAME=menu VALUE=false>');
        writeln('<embed src="'+movie+meinKeks+'" quality=high pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="'+breite+'" height="'+hoehe+'">');
        writeln('</embed>');
    	writeln('</object>'); 
    }
    }else{
    meinKeks="?keks=false";
    with(document){
    	writeln('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version='+version+'" width="'+breite+'" height="'+hoehe+'">');
    	writeln('<param name=movie value="'+movie+meinKeks+'">');
        writeln('<param name=quality value=high><PARAM NAME=menu VALUE=false>');
        writeln('<embed src="'+movie+meinKeks+'" quality=high pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="'+breite+'" height="'+hoehe+'">');
        writeln('</embed>');
    	writeln('</object>'); 
    }
    }
    }
    // end hiding contents -->
    </script>
    Das klappte auch wunderbar. Das Script wurde über einen ganz normalen Link aus dem Flashfilm heraus ausgeführt.

    Code:
    	myarguments = "'mdfilme','"+_root.film+"','mdspeed','"+_root.speed+"','mdwasser','"+_root.wellen+"','mdkantenglaettung','"+_root.kg+"','mddrehen','"+_root.twist+"','mdbewegung','"+_root.paddel+"'";
    	getURL ("JavaScript:setzeKeks("+myarguments+")");
    Doch, als ich die Seite in ein Frameset eingebunden hab, öffnet sich beim Versuch ein Cookie abzulegen, im Frame die typische Fehlerseite "Die Seite kann nicht angezeigt werden." ( URL = res://C:\WINNT\system32\shdoclc.dll/dnserror.htm#javascript:setzeKeks('mdfilme','1','mdspeed','10','mdwasser','1','mdkantenglaettung','1 ','mddrehen','1','mdbewegung','1')). - (Internet Explorer 5.5)

    Im Netscape (7.0) tritt dieses Problem, trotz Aufruf im Frameset, nicht auf und es funktioniert alles tadellos.

    Leider habe ich noch nicht so viel Ahnung von Java und habe ein fertiges Script meinen Bedürfnissen angepasst. Deshalb fällt es mir auch momentan so schwer, die Fehlerquelle zu lokalisieren.

    Falls Ihr noch weitere Informationen benötigt, sagt bitte Bescheid.

    Vielen Dank im Voraus,
    ChatJack
    Zuletzt geändert von ChatJack; 24.06.2003, 17:05.

  • #2
    [COLOR=green]top.[/COLOR]document.setCookie(...)?
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      Hi,

      also setCookie kenn ich jetzt nur aus PHP. Ich bin der Fehlerquelle auch schon ein Stückchen näher gekommen. Wenn das Frameset auf dem Server im selben Ordner liegt, wie die HTML-Datei mit den Java Funktionen, klappts. Wenn das Frameset bei mir lokal liegt, und ich verweise auf die Seite auf dem Server klappt's nicht. Leider muss man aber von überall aus, auf die Seite verlinken können müssen.

      Warum das so ist, ist mir noch nicht so recht klar. Mit Internet Explorer 6 tritt das Problem übrigens ebenfalls "nicht" auf.

      Gruß,
      ChatJack

      Kommentar


      • #4
        Naja, jetzt hab ich's doch so lösen können, dass alles auf einem Server liegt. Kommt mir irgendwie vor wie'n Bug im IE5. Oder fehlt's mir einfach noch an Javakenntnissen?

        Jedenfalls geht's jetzt.

        Gruß,
        ChatJack

        Kommentar


        • #5
          ähm ... ja. stimmt, in JavaScript heißt das document.cookie. Es kam mir auf das top. an.

          Das Problem mit den verschiedenen Rechnern folgt aus den Eigenschaften der Cookies. Der kann nämlich auf einzelne Domains und Verzeichnisse eingeschränkt werden. Der Defaultwert für diese Einschränkung ist vom Browser abhängig; bei den meisten wird der Cookie nur an Seiten zurück gesendet, die im Verzeichnis der aktuellen Seite oder in Unterverzeichnissen liegen.
          Und dieser Wert lässt sich afaik in JavaScript nicht ändern.

          Nebenbei: PHP kann JavaScript-Cookies nicht lesen und umgekehrt.
          mein Sport: mein Frühstück: meine Arbeit:

          Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

          Kommentar


          • #6
            Original geschrieben von Titus
            Nebenbei: PHP kann JavaScript-Cookies nicht lesen und umgekehrt.
            das halte ich für ein gerücht.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar

            Lädt...
            X