lina-: FireFox und iframe

moin :)

Ich habe in meinem Projekt einen (vorläufig) unsichtbaren iframe eingebaut:
<iframe frameborder="1" scrolling="no" id='cal_manual'  class="cal" style="position:absolute;width:140;height:111;top:0px;visibility:hidden" ></iframe>

Bei Klick auf einen Button soll er dann sichtbar werden, was auch ganz gut funktioniert.
IE und Mozilla verhalten sich genau so wie ich es möchte.

Leider habe ich ein Darstellungsproblem in FireFox.
Hier wird anstatt der darunterliegenden Elemente ein weisser Kasten (in etwa die Größe des iframes) gezeigt. Dieser Kasten hat als Besonderheit eine Aussparung in der linken oberen Ecke.
Gerne würde ich ein Bild oder eine URL irgendwo zur Verfügung stellen - das ist mir aber leider nicht möglich. Hoffe die Beschreibung hilft trotzdem für das Verständnis meines Problems.

liebe Grüße aus Berlin
lina-

--
Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
  1. puts "Hallo " + gets.chomp + "."

    ?> lina
    => Hallo lina.

    Ich habe in meinem Projekt einen (vorläufig) unsichtbaren iframe eingebaut:
    <iframe frameborder="1" scrolling="no" id='cal_manual'  class="cal" style="position:absolute;width:140;height:111;top:0px;visibility:hidden" ></iframe>

    Dass der Platz für ihn reserviert bleibt, ist so in Ordnung, oder?

    Bei Klick auf einen Button soll er dann sichtbar werden, was auch ganz gut funktioniert.

    Wie genau hast du dies bewerkstelligt? (Konkret: Codebeispiel)

    Einen schönen Dienstag noch.

    Gruß, Ashura

    --
    Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
    30 Days to becoming an Opera8 Lover -- Day 20: search.ini
    Meine Browser: Opera 8.01 | Firefox 1.0.4 | Lynx 2.8.3 | Netscape 4.7 | IE 6.0
    [Deshalb frei! - Argumente pro freie Software]
    1. moin Ashura :)

      Dass der Platz für ihn reserviert bleibt, ist so in Ordnung, oder?

      reserviert? Da er ja absolut positioniert ist, soll er im sichtbaren Zustand die anderen Elemente überdecken.
      Wird da dieser Platz tatsächlich schon reserviert? Kann man das irgendwie unterbinden? Bzw. erzwingen, dass dieser reservierte Platz nicht angezeigt wird?

      Bei Klick auf einen Button soll er dann sichtbar werden, was auch ganz gut funktioniert.

      Wie genau hast du dies bewerkstelligt? (Konkret: Codebeispiel)

      bei onclick (auf den Button) wird folgende Funktion aufgerufen:

      function calVisibility(){
           var calVisible=document.getElementById(calenderId).style.visibility;

      if(calVisible=="hidden"){
          document.getElementById(calenderId).style.visibility="visible";
          }
          else {
            document.getElementById(calenderId).style.visibility="hidden";
          }
      }

      Interessanterweise ist dieser weisse Kasten nach zweimaligem Klicken des Buttons (also einmal visible dann wieder invisible machen) nicht mehr vorhanden ...

      liebe Grüße aus Berlin
      lina-

      --
      Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
      1. puts "Hallo " + gets.chomp + "."

        ?> lina
        => Hallo lina.

        Wird da dieser Platz tatsächlich schon reserviert? Kann man das irgendwie unterbinden? Bzw. erzwingen, dass dieser reservierte Platz nicht angezeigt wird?

        Nein, ich bitte um Verzeihung--ich hatte das position:absolute; überlesen.

        bei onclick (auf den Button) wird folgende Funktion aufgerufen:

        function calVisibility(){

        var calVisible=document.getElementById(calenderId).style.visibility;

        if(calVisible=="hidden"){
            document.getElementById(calenderId).style.visibility="visible";
            }
            else {
              document.getElementById(calenderId).style.visibility="hidden";
            }
        }

          
        Und wie übergibst du den Inhalt der Variable calenderId?  
          
        
        > Interessanterweise ist dieser weisse Kasten nach zweimaligem Klicken des Buttons (also einmal visible dann wieder invisible machen) nicht mehr vorhanden ...  
          
        Also wird dann der Iframe korrekt angezeigt?  
          
          
        Einen schönen Dienstag noch.  
          
        Gruß, Ashura  
        
        -- 
        Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|  
        [30 Days to becoming an Opera8 Lover](http://operalover.tntluoma.com/8/) -- [Day 20: search.ini](http://operalover.tntluoma.com/8/day_20_searchini)  
        Meine Browser: Opera 8.01 | Firefox 1.0.4 | Lynx 2.8.3 | Netscape 4.7 | IE 6.0  
        [\[Deshalb frei! - Argumente pro freie Software\]](http://deshalbfrei.org/)
        
        1. moin :)

          Und wie übergibst du den Inhalt der Variable calenderId?

          Das mache ich beim initialisieren des Kalenders
          Ich poste einfach mal alles was mir relevant erscheint ;) damit du mir nicht alles aus der Nase ziehen musst *g*

          Der Button:
          <img id="btnCal" src="<%=request.getContextPath()%>/img/btn_calendar.gif" onClick="calendarStart('<%= request.getContextPath() %>','cal_manual','<%= com.procset.adjust.Globals.getForeground() %>')"/>

          Der iframe:
          <iframe frameborder="1" scrolling="no" id='cal_manual'  class="cal" style="position:absolute;width:140;height:111;top:0px;visibility:hidden" ></iframe>

          Wie du siehst, wird die id des Iframes als zweiter Parameter an die Funktion "calendarStart" übergeben.
          Diese sieht (in Auszügen) wie folgt aus:

          function calendarStart(path, calendar,color){
              contextpath=path;
              calenderId=calendar; //hier ist die KalenderID
              highlightColor=color;
              var dostart=false;
              /*es gibt zwei verschiedene Kalender, die anhand der ID unterschieden werden. Der Grafik-Kalender übergibt seine eigene ID.*/
              if(calGraphicExists==false && calenderId=="cal_graphic"){
                  dostart=true;
                  calGraphicExists=true;
              }
              if(calManualExists==false && calenderId=="cal_manual"){
                  dostart=true;
                  calManualExists=true;
              }
              if(dostart==true){
                 getDates();
                 leapYear();
                 setBeginEnd();
                 setTable();
              }
             calendarVisibility() ;
          }
          Ab diesem Zeitpuntk (also sobald der Button geklickt wird) funktioniuert ja alles prima. Nur der Zeitraum bis zum ersten Klick ist der Knackpunkt.

          Also wird dann der Iframe korrekt angezeigt?

          jep - und vor allem korrekt wieder ausgeblendet (ohne weissen Kasten)

          liebe Grüße aus Berlin
          lina-

          --
          Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
          1. puts "Hallo " + gets.chomp + "."

            ?> lina
            => Hallo lina.

            Der Button:
            <img id="btnCal" src="<%=request.getContextPath()%>/img/btn_calendar.gif" onClick="calendarStart('<%= request.getContextPath() %>','cal_manual','<%= com.procset.adjust.Globals.getForeground() %>')"/>

            Darf man Fragen, woher die <%=...%> kommen?

            Ab diesem Zeitpuntk (also sobald der Button geklickt wird) funktioniuert ja alles prima. Nur der Zeitraum bis zum ersten Klick ist der Knackpunkt.

            Zumindest vom Code her sehe ich (soweit ich diesen nachvollziehen kann) kein Problem. Wenn die JS-Konsole des FF nichts weiter dazu zu sagen hat, wäre ein online-Beispiel wirklich hilfreich.

            Aber wenn das, wie du sagst, nicht möglich ist...

            Einen schönen Dienstag noch.

            Gruß, Ashura

            --
            Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
            30 Days to becoming an Opera8 Lover -- Day 20: search.ini
            Meine Browser: Opera 8.01 | Firefox 1.0.4 | Lynx 2.8.3 | Netscape 4.7 | IE 6.0
            [Deshalb frei! - Argumente pro freie Software]
            1. moin :)

              Darf man Fragen, woher die <%=...%> kommen?

              Das ist eine JSP-Ausgabe, die den Context übergibt (also den Pfad)
              Damit gibt es auch kein Problem.

              Zumindest vom Code her sehe ich (soweit ich diesen nachvollziehen kann) kein Problem. Wenn die JS-Konsole des FF nichts weiter dazu zu sagen hat, wäre ein online-Beispiel wirklich hilfreich.

              Die Konsole hüllt sich leider in schweigen. Hab mir mal testweise den visibility-Status des iframes ausgeben lassen (vor dem ersten Klick) - ist tatsächlich "hidden" kann also daran nicht liegen.
              Was mich halt wundert ist dieser weisse Kasten. Der Iframe hat ja keine Hintergrundfarbe bekommen - nur die Tabelle darin (die noch nicht angelegt sein sollte)

              Was mir gerade aufgefallen ist: dieser weisse Kaste nimmt "seltsame" Dinge in sich auf... Hab gerade den Browser minimiert und den Editor im Vordergrund gehabt - als ich den Browser wieder maximiert hab, waren in dem weissen Kasten Zeichen vom Editor (also genau der Auschnitt des Editors) - das wird immer abstruser! *find*

              Aber wenn das, wie du sagst, nicht möglich ist...

              nee - leider nicht - da hängt ein riesiger Rattenschwanz an diesem Projekt.

              liebe Grüße aus Berlin
              lina-

              --
              Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
  2. Hi,

    <iframe frameborder="1" scrolling="no" id='cal_manual'  class="cal" style="position:absolute;width:140;height:111;top:0px;visibility:hidden" ></iframe>

    Hast Du es auch mal mit gültigen Werten für width und height probiert?

    Außerdem: Hast Du statt der visibility-Eigenschaft mal die display-Eigenschaft benutzt?

    Was steht im CSS für die Klasse cal und/oder die id cal_manual?

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    Schreinerei Waechter
    Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    1. moin MudGuard :)

      Hast Du es auch mal mit gültigen Werten für width und height probiert?

      Haehm.. ja gerade eben *g* ;) danke für den Hinweis! Der Kasten ist leider immer noch da.

      Außerdem: Hast Du statt der visibility-Eigenschaft mal die display-Eigenschaft benutzt?

      Soeben ausprobiert. Funktioniert im Mozilla und im Firefox hervorragend :) Nun leider nicht mehr im IE. Hier wird nur eine einzelne graue Linie angezeigt (ich nehme an, dass es die eine border-bottom Linie ist, die ich in der Tabelle anzeigen lasse)

      Was steht im CSS für die Klasse cal und/oder die id cal_manual?

      Aehm sorry - gar nichts mehr :] das ist noch aus früheren Tests...
      gleich mal entfernen.

      liebe Grüße aus Berlin
      lina-

      --
      Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)
    2. moin :)

      Ich nehm alles zurück und behaupte das Gegenteil!

      Hatte mich nur vertippt :] Auch im IE funktioniert es mit display statt visibility super!
      Danke MudGuard, danke Ashura *freu*

      liebe Grüße aus Berlin
      lina-

      --
      Self-Code: ie:% fl:( br:^ va:) ls:/ fo:| rl:( ss:) de:] js:| mo:)