verzweiflung macht sich breit: DIV in IFRAME ansprechen

Hallo,
ich google seit Sonntag, hab auch hier gesucht, aber offenbar bin ich zu doof für die sicherlich guten Erklärungen.
Mein Problem: Ich möchte ein DIV in einem IFRAME ausblenden und hab das so versucht:

  
<body onload="top.frames[buzz]document.getElementById('zz').style.display = 'none';">  
<iframe src="buzzmap.html" width="200" height="400" name="buzz">  
</iframe>  
</html>  

das IFRAME sieht so aus:

<div id="zz" align="right">  
<h1>bin noch da, sollte weg sein!</h1>  
</div>

Wo ist mein Fehler?
Danke!

  1. Mahlzeit verzweiflung macht sich breit,

    <body onload="top.frames[buzz]document.getElementById('zz').style.display = 'none';">

    Da fehlt ein "." zwischen "[buzz]" und "document" ...

    Wo ist mein Fehler?

    s.o.

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
    1. Da fehlt ein "." zwischen "[buzz]" und "document" ...

      Ok, danke, den Punkt hab ich eingefügt - geht leider immer noch nicht.
      Ich teste mit FF 3.5.1 (sollte das wichtig sein?)

      1. Mahlzeit verzweiflung macht sich breit,

        Ok, danke, den Punkt hab ich eingefügt - geht leider immer noch nicht.

        "Geht nicht" geht nicht. Wie äußert sich der auftretende Fehler? Was funktioniert nicht bzw. anders als Du erwartest? Was erwartest Du? Was genau sagt die Fehlerkonsole?

        Ich teste mit FF 3.5.1 (sollte das wichtig sein?)

        Das kommt (auch) ein wenig darauf an, wie valide Dein Code ist ...

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
        1. "Geht nicht" geht nicht. Wie äußert sich der auftretende Fehler? Was funktioniert nicht bzw. anders als Du erwartest? Was erwartest Du? Was genau sagt die Fehlerkonsole?

          Sorry, also mit "geht nicht" meine ich, dass der ggstl DIV im IFRAME immer noch sichtbar ist, obleich er ja durch das ONLOAD im übergeordnetem FRAME ausgeblendet werdem sollte.

          Ich teste mit FF 3.5.1 (sollte das wichtig sein?)

          Das kommt (auch) ein wenig darauf an, wie valide Dein Code ist ...

          Die Validität kann ich leider nicht testen, die Schnipsel sind nur lokal vorhanden;

          Vielen Dank für Deine Hilfe!

  2. Hi,

    Mein Problem: Ich möchte ein DIV in einem IFRAME ausblenden und hab das so versucht:

    <body onload="top.frames[buzz]document.getElementById('zz').style.display = 'none';">

    <iframe src="buzzmap.html" width="200" height="400" name="buzz">
    </iframe>
    </html>

      
    bist du sicher, dass das Dokument im iframe auch schon geladen ist, wenn dein Hauptdokument "onload" feuert? Was sagt die Fehlerkonsole?  
      
    Ciao,  
     Martin  
    
    -- 
    Zwei Mäuse treiben's miteinander. Sagt der Mäuserich: "Hoffentlich ist nicht wieder alles für die Katz."
    
    1. bist du sicher, dass das Dokument im iframe auch schon geladen ist, wenn dein Hauptdokument "onload" feuert? Was sagt die Fehlerkonsole?

      Hi, die Fehlerkonsole sagt:

      "Error: top.frames[buzz] is undefined
      Line: 1"

      Das würde Deine Vermutung wg des Ladens untersteichen. Wie kann ich das denn beheben?
      Danke!

      1. Hallo,

        bist du sicher, dass das Dokument im iframe auch schon geladen ist, wenn dein Hauptdokument "onload" feuert? Was sagt die Fehlerkonsole?
        die Fehlerkonsole sagt:

        "Error: top.frames[buzz] is undefined
        Line: 1"

        Das würde Deine Vermutung wg des Ladens untersteichen.

        so verstehe ich das auch.

        Wie kann ich das denn beheben?

        Entweder mit Krücke und Holzhammer: Indem du den Javascript-Zugriff um eine gewisse Zeit verzögerst. Zwei bis drei Sekunden sollten in den meisten Fällen reichen; falls jemand eine langsame Verbindung hat, bei der's mal länger dauert, stehst du aber wieder im Regen.

        Oder etwas aufwendiger und zuverlässiger: Indem du vom Hauptdokument aus in kurzen Zeitabständen immer wieder prüfst, ob das iframe-Dokument inzwischen da ist (z.B. typeof(top.frames[buzz]) abfragen), und erst darauf zugreifst, wenn es verfügbar ist.

        Die eleganteste und sauberste Methode wäre natürlich, diese Javascript-Operation im iframe-Dokument selbst unterzubringen.

        Ciao,
         Martin

        --
        Einer aktuellen Erhebung zufolge sind zehn von neun Ehefrauen eifersüchtig auf ihren Mann.
        1. Entweder mit Krücke und Holzhammer: Indem du den Javascript-Zugriff um eine gewisse Zeit verzögerst.

          Danke nochmals, hab jetzt so geändert:

          <head>  
          <script type="text/javascript">  
          function hidediv() {  
          top.frames[buzz].document.getElementById('zz').style.display = 'hidden';  
          }  
          </script>  
          </head>  
          <body onload="setTimeout('hidediv()',2000);">
          

          Bedauerlicherweise ohne Effekt auf mein Problem... das DIV ist immer noch zu sehen...
          Dennoch Danke und sorry wg der Mühe!

          1. Hi,

            <head>

            <script type="text/javascript">
            function hidediv() {
            top.frames[buzz].document.getElementById('zz').style.display = 'hidden';
            }
            </script>
            </head>
            <body onload="setTimeout('hidediv()',2000);">

              
            
            > Bedauerlicherweise ohne Effekt auf mein Problem... das DIV ist immer noch zu sehen...  
              
            und was sagt nun die Fehlerkonsole?  
            Nur mal so zur Sicherheit gefragt: Das Dokument im iframe stammt schon von deinem eigenen Server? - Andernfalls wäre die ganze Aktion natürlich wegen der Same Origin Policy zum Scheitern verdammt.  
              
            Schönen Abend noch,  
             Martin  
            
            -- 
            Wenn alle das täten, wass sie mich können,  
            käme ich gar nicht mehr zum Sitzen.
            
            1. und was sagt nun die Fehlerkonsole?

              Die Fehlerkonsole meint:
              "Error: top.frames[buzz] is undefined"

              Nur mal so zur Sicherheit gefragt: Das Dokument im iframe stammt schon von deinem eigenen Server?

              Ja, alle html's liegen bei mir;

              Besten Dank!

          2. Hi,

            top.frames[buzz].document.getElementById('zz').style.display = 'hidden';

            Welchen Wert hat an dieser Stelle die Variable namens buzz?

            Oder soll das ein String sein? Ne, kann ja nicht sein, dann wären ja Anführungszeichen außenrum ...

            cu,
            Andreas

            --
            Warum nennt sich Andreas hier MudGuard?
            O o ostern ...
            Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.
          3. [code lang=html]<head>
            <script type="text/javascript">
            function hidediv() {
            top.frames[buzz].document.getElementById('zz').style.display = 'hidden';
            }
            </script>
            </head>

            Welchen Wert hat denn die Variabel buzz?

            Struppi.

            1. Welchen Wert hat denn die Variabel buzz?

              Guten Morgen!

              buzz ist der Name, den ich dem IFRAME zugewiesen habe:

              <iframe src="buzzmap.html" width="200" height="400" name="buzz">  
              </iframe>
              
              1. Mahlzeit verzweiflung macht sich breit,

                Welchen Wert hat denn die Variabel buzz?

                buzz ist der Name, den ich dem IFRAME zugewiesen habe:

                <iframe src="buzzmap.html" width="200" height="400" name="buzz">

                Und wie kommst Du auf die Idee, dass eine nicht existierende (oder nicht initialisierte) Variable namens "buzz" genau diese String als Inhalt hat bzw. warum meinst Du, in diesem Fall die ansonsten IMMER erforderlichen http://de.selfhtml.org/javascript/objekte/string.htm@title=String-Begrenzer weglassen zu können?

                MfG,
                EKKi

                --
                sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|