js funzt im frame nicht, ansonsten schon

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

  • js funzt im frame nicht, ansonsten schon

    hallo,
    hab hier dieses wundervolle js, welches einwandfrei funktioniert -
    nur leider nicht im frameset.

    + komisch ist, das wenn ich innerhalb des framesets auf einen anderen link klicke und wieder zurück auf die seite komme, in der dieses js ist, es plötzlich funktioniert.
    + auch wenn man den frame aktualisiert, läuft es ...

    es verweigert also beim ersten aufruf der entsprechenden seite seinen dienst.

    habe das js schon ins frame selber reingeschrieben als auch in die seite selber, hatte aber keinen effekt.

    hat wer eine idee, woran das liegen kann?

    PHP-Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd"
    >
    <
    html>
    <
    head>
    <
    meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <
    title>Unbenanntes Dokument</title>
    <
    script>
    function 
    expand(sec)
    {
         
    thisSec = eval('e' sec);
         if (
    thisSec != null){
              if (
    thisSec.length){
                   if (
    thisSec[0].style.display != 'none'){
                        for (var 
    i=0;i<thisSec.length;i++) {thisSec[i].style.display 'none'}
                   }
                   else{
                        for (var 
    i=0;i<thisSec.length;i++) {thisSec[i].style.display 'inline'}
                   }
              }
              else{
                             if (
    thisSec.style.display != 'none')     {thisSec.style.display 'none'}
                   else{
    thisSec.style.display 'inline'}
              }
         }

    }
    </
    script>
    </
    head>

    <
    body>


     <
    p><a href="javascript:expand(0)">zeigen</a></p>
     <
    table width="346" height="212" border="0" bgcolor="#99FF00" id="e0" style="display:none">
            <
    tr>
            <
    td>column1</td>
            <
    td>column2</td>
            </
    tr>
    </
    table>
    </
    body>
    </
    html
    wär für jeden hinweis dankbar.
    gruss
    b.
    Zuletzt geändert von bastian; 21.01.2005, 10:13.

  • #2
    Re: js funzt im frame nicht, ansonsten schon

    Original geschrieben von bastian
    hab hier dieses wundervolle js, welches einwandfrei funktioniert -
    nur leider nicht im frameset.
    schön, dass du wengistens dabeischreibst, was das script machen soll, anstatt uns raten zu lassen - so sehen qualifizierte postings aus!
    (aber was anderes als so einen halbgaren scheiß erwartet man von den pappenheimern hier ja kaum noch ...)

    außerdem "funktioniert" das script ganz sicher nicht "einwandfrei" - wenn überhaupt, dann nur durch reinen zufall, weil ein gewisser browser mal wieder viel zu großzügig im umgang mit schlampigem code ist.

    thisSec = eval('e' + sec);

    als sec wurd 0 übergeben, also wird hier der textstring 'e0' per eval "ausgeführt" - was bitte soll das denn bewirken?
    ein browser, der daraus irgendwas macht, anstatt einen fehler auszugeben, ist wirklich defekt.


    wär für jeden hinweis dankbar.
    lerne javascript, damit du nicht mehr auf so einen irgendwo wegkopierten müll angewiesen bist, sondern dir deine benötigten scripte selber und vor allem richtig schreiben kannst.
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      thisSec = eval('e' + sec);
      und dann
      if (thisSec != null){

      Was soll denn deiner Meinung nach geprüft werden? Ob ein gewisses Objekt existiert? Wohl kaum! Denn thisSec ist nichts anderes als ein String. Wenn was funz, dann nur durch Zufall oder eventuell im IE!

      Suche mal nach getElementsByID.

      Kommentar


      • #4
        wahsaga wie man ihn kennt und schätzt

        zur ergänzung:
        dieses wundervoll-beschissenen skript sorgt oder sollte zumindest dafür sorgen, das die tabelle mit id e0 beim ersten klick gezeigt, beim zweiten verborgen werden soll.


        wenn überhaupt, dann nur durch reinen zufall, weil ein gewisser browser mal wieder viel zu großzügig im umgang mit schlampigem code ist.
        welchen browser schlägst du denn anstatt firefox vor ?


        gruss und danke für deinen tipp.
        b.

        Kommentar


        • #5
          Original geschrieben von bastian
          welchen browser schlägst du denn anstatt firefox vor ?
          hatte eigentlich eher erwartet, dass du das im IE testest :-)
          wenn der FF so'n unfug auch ohne fehlermeldung mitmacht, sind echt üble zeiten angebrochen ...

          halte dich an asp2phps tipp, dir mal getElementById() und co. anzuschauen, um erst mal eine vernünftige referenz auf das objekt, mit dem du arbeiten willst, zu bekommen ... anstatt dieses eval()-krempels.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            okay, mach ich.
            danke für eure hilfe.

            IE? so'n dreck - reicht mir schon wenn ich windows nutzen muss!
            gruss
            b.

            Kommentar


            • #7
              Original geschrieben von wahsaga
              hatte eigentlich eher erwartet, dass du das im IE testest :-)
              OffTopic:
              ich auch

              wenn der FF so'n unfug auch ohne fehlermeldung mitmacht, sind echt üble zeiten angebrochen ...
              OffTopic:
              yepp ... dann kann man nicht mehr nur über meinen Lieblingsbrowser und seine "Vorzüge" reden

              Kommentar


              • #8
                Original geschrieben von bastian
                okay, mach ich.
                danke für eure hilfe.

                IE? so'n dreck - reicht mir schon wenn ich windows nutzen muss!
                gruss
                b.
                OffTopic:
                komm schon, gib zu, dass du ohne Windows nichts Vernünftiges mit dem Computer anfangen kannst

                Kommentar


                • #9
                  naja - einiges schon.

                  beschreibung:
                  mit click auf den button/link erscheint bzw. verschwindet alles,
                  was zwischen dem DIV-tag steht. (sogar mit getElementsByTagName )

                  PHP-Code:
                  function toggleDisplay(itemname)
                  {

                     
                  tmp document.getElementsByTagName('div');
                      for (
                  i=0;i<tmp.length;i++)
                      {
                      if (
                  tmp[i].className == itemnametmp[i].style.display = (tmp[i].style.display == 'none' || tmp[i].style.display == '') ? 'inline' 'none';
                                 }
                      } 
                  anwendung:
                  PHP-Code:
                  <button onclick="toggleDisplay('toggle')">zeigen-verbergen</button>
                  <
                  div class="toggle">SCHWEINEKRAM HIER</div

                  gruss
                  b.
                  Zuletzt geändert von bastian; 21.01.2005, 12:11.

                  Kommentar

                  Lädt...
                  X