[JavaScript] macht nix

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

  • [JavaScript] macht nix

    Hi, ich habe folgende funktionen:
    Code:
    function setcookie(name,value){
    	cookiestring=name+"="+escape(value)+";EXPIRES="+ getexpirydate(365)+";PATH=/";
    	document.cookie=cookiestring;
    }
    function language(lang) {
    	setcookie('Language', lang);
    	location.href.reload();
    }
    und da sollen die aufgerufen werden:

    PHP-Code:
    <img src="template/offlike/images/german.gif" onClick="language('de');" />
    <
    img src="template/offlike/images/english.gif" onClick="language('com');" />
    <
    img src="template/offlike/images/francais.gif" onClick="language('fr');" /> 
    nur leider wird kein cookie gesetzt und auch nicht refreshed. Cookies werden auf jeden fall von meinem rowser angenommen. Wisst ihr worans liegt?
    Danke im Vorraus!
    Dulla_Po
    Zuletzt geändert von Dulla_Po; 26.03.2007, 20:51.

  • #2
    bevor dir hier einer hilft, brich bitte erst mal den code um. und benutze dafür die php-tags.

    gruß
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      Ok, hab ich gemacht, tschuldigt!
      So, hab nur noch das Problem, das nicht refreshed wird!
      Die zu refreshende Seite is in nem Frameset und der Befehl in einer externen js datei. könnte das daran liegen?
      Und das auch folgendes Script nicht greift:
      PHP-Code:
      switch (getcookie('Language')){
                  case 
      'de'de.src='template/offlike/images/german-on.gif';
                             
      en.src='template/offlike/images/english.gif';
                             
      fr.src='template/offlike/images/francais.gif';
                              break;
                  case 
      'en'de.src='template/offlike/images/german.gif';
                             
      en.src='template/offlike/images/english-on.gif';
                             
      fr.src='template/offlike/images/francais.gif';
                              break;
                  case 
      'fr'de.src='template/offlike/images/german.gif';
                             
      en.src='template/offlike/images/english.gif';
                             
      fr.src='template/offlike/images/francais-on.gif';
                              break;
              } 
      So sind jetzt die Bilder auf der HP:
      Code:
      <img style="cursor:pointer;" name="de" src="template/offlike/images/german.gif" 
      onClick="language('de');" />
      <img style="cursor:pointer;" name="en" src="template/offlike/images/english.gif" 
      onClick="language('en');" />
      <img style="cursor:pointer;" name="fr" src="template/offlike/images/francais.gif" 
      onClick="language('fr');" />
      Zuletzt geändert von Dulla_Po; 26.03.2007, 21:24.

      Kommentar


      • #4
        Cookie-Pfad?
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Naja, der Cookie wird ausgelesen und gesetzt, die Sprache auf der Page ändert sich. Aber leider nich die Bilder und die Seite reloadet sich nicht von selber.

          Kommentar


          • #6
            Original geschrieben von Dulla_Po
            Naja
            Ich stelle dir bestimmt nicht dafür eine Frage, dass du mir irgendwas komplett anderes erzählst.
            der Cookie wird ausgelesen und gesetzt
            Ach, schau einer an - vorher hast du noch behauptet, dass auch das nicht passieren würde.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Ja tut mir leid, hab im IE Cookies Ordner gesucht, hab die Page aber mit FireFox aufgerufen. Deshalb hab ich den nich gefunden. Aber der nimmt den Befehl: location.href.reload(); in der externen .js Datei nicht an und die Bilder werden durch die switch Anweisung leider auch nicht geändert.
              Das sind jetzt noch meine Probleme!

              Kommentar


              • #8
                Und wann debuggst du jetzt endlich mal ...?
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  Also, der IE hat mir gesagt das auf Zeile 50 ein Objekt nicht so benutzt werden kann. Aber Zeile 50 ist etwas unter dem Code dort. Meint der doch das Image Objekt?

                  Kommentar


                  • #10
                    Also ich habs auch schon mit var de = new Image(); usw. probiert. Hat auch nicht geklappt meint ihr das?

                    Kommentar


                    • #11
                      Weiß denn niemand woran es liegen könnte? Ich bin jetzt ratlos, hab auch schon gedebuggt und ausprobiert und alles getan. Es liegt nicht daran, das ich mir keine Mühe gebe, wirklich!

                      Kommentar


                      • #12
                        Beschreibe nochmals ganz genau:

                        - wie ist die Seite, mit oder ohne frames, wenn mit in welcher Seite wurde cookie gesetzt, wo soll ausgelesen werden
                        - was hast du bisher festgestellt
                        - wie hast du bisher festgestellt
                        - Fehlermeldungen?
                        - Schon mal die Errorconsole von Firefox angeschaut?

                        Frage: was macht die Funktion getexpirydate, wasfür Datumsformat liefert sie?

                        Kommentar


                        • #13
                          Also, die Seite wird in einem Frameset ausgegeben.
                          Das ist das Frameset:
                          PHP-Code:
                          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
                           "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"
                          >
                          <
                          html xmlns="http://www.w3.org/1999/xhtml">
                          <
                          head>
                          <
                          meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
                          <
                          title>Unbenanntes Dokument</title>
                          </
                          head>
                          <
                          frameset cols="100%,*" border="0" frameborder="0" title="hauptframe">
                            <
                          frame name="frame1" src="page/index.php">
                            <
                          frame name="frame2" src="page/music.php">
                          </
                          frameset>
                          <
                          noframes><body>
                          </
                          body>
                          </
                          noframes></html
                          In der page/index.php soll der Cookie gesetzt werden. Der wird auch prima gesetzt. Relativ von der index.php, der Pfad "template/offlike/js/functions.js", liegt die functions .js. Dort ist diese Funktion drinne:
                          PHP-Code:
                          function language(lang) {
                              
                          setcookie('Language'lang);
                              
                          parent.frame1.location.href.reload();

                          diese Funktion wird durch ein onclick event der Bilder aufgerufen:
                          PHP-Code:
                          <img style="cursor: pointer;" name="de" src="template/offlike/images/german.gif" 
                          onClick="language('de');" />
                          <
                          img style="cursor: pointer;" name="en" src="template/offlike/images/english.gif" 
                          onClick="language('en');" />
                          <
                          img style="cursor: pointer;" name="fr" src="template/offlike/images/francais.gif" 
                          onClick="language('fr');" /> 
                          Der Cookie wird gesetzt, nur die Seite reloaded nicht und zwar soll der Frame reloaden, in dem sich die index.php befindet.

                          Die Firefox Fehlerkonsole sagt mir, das "de" nicht deklariert ist.
                          Welches ich ja in diesem Script aufrufe:
                          PHP-Code:
                          switch (getcookie('Language')){
                                      case 
                          'de'de.src='template/offlike/images/german-on.gif';
                                                 
                          en.src='template/offlike/images/english.gif';
                                                 
                          fr.src='template/offlike/images/francais.gif';
                                                  break;
                                      case 
                          'en'de.src='template/offlike/images/german.gif';
                                                 
                          en.src='template/offlike/images/english-on.gif';
                                                 
                          fr.src='template/offlike/images/francais.gif';
                                                  break;
                                      case 
                          'fr'de.src='template/offlike/images/german.gif';
                                                 
                          en.src='template/offlike/images/english.gif';
                                                 
                          fr.src='template/offlike/images/francais-on.gif';
                                                  break;
                                  } 
                          aber ich hatte mal versucht das mit de = new Image() zu deklarieren. abs wieder rausgenomen, weil sich wieder nix getan hat.

                          So, wenn ihr noch mehr braucht sagt es bitte, auf der Page läuft alles, ausser das!

                          Kommentar


                          • #14
                            1. der 2. Parameter im cookiestring entspricht er dem Zeitformat, was angefordertt ist?
                            2. ich sehe nirgends, dass du cookie ausliest, du gibst nur eine gekapselte Funktion an
                            3. du gehst schon wieder nicht auf die gestellten Fragen ein
                            4. Wenn du Frames schon verwendest, dann lerne doch, wie man damit umgeht, für reload sollst du parent... nehmen und das Frame gezielt ansprechen.

                            Kommentar


                            • #15
                              Den Cookie lese ich normalerweise mit PHP aus, das klappt. Ansonsten lese ich und setze die Cookies hiermit:
                              PHP-Code:
                              function getcookie(cookiename) {
                                   var 
                              cookiestring=""+document.cookie;
                                   var 
                              index1=cookiestring.indexOf(cookiename);
                                   if (
                              index1==-|| cookiename=="") return ""
                                   var 
                              index2=cookiestring.indexOf(';',index1);
                                   if (
                              index2==-1index2=cookiestring.length
                                   return 
                              unescape(cookiestring.substring(index1+cookiename.length+1,index2));
                              }
                              function 
                              setcookie(name,value){
                                  
                              cookiestring=name+"="+escape(value)+";EXPIRES="getexpirydate(365)+";PATH=/";
                                  
                              document.cookie=cookiestring;

                              Ich spreche doch das frame fenster mit parent an? Was meinst du denn damit? Ich hab das mit den Frames so auf ner anderen Homepage gelesen.
                              Weiß nich ob das reicht?
                              Ansonsten bekomm ich aus der Firefox Errorconsole die Meldung das "de" nicht deklariert ist.
                              Danke für deine Hilfe!

                              Kommentar

                              Lädt...
                              X