Frame-Problem: In IE mit Hintergrund / FF ohne

  • Hi,
    folgendes Problem:
    Bei meinem neusten Projekt (http://www.schoenkirchen-handball.de/Christopher/Fehler/HP.html)
    gibt es in der linken Navigation zwei Frames (http://www.schoenkirchen-handball.de/Christopher/frames.JPG)
    im FF ist alles richtig. Der Hintergrund ist transparent, sodass nur die Wörter angezeigt werden und der Hintergrund der Navi bleibt.
    Im IE gibt es dort weiße Hintergründe. (http://www.schoenkirchen-handball.de/Christopher/frames2.JPG)

    Welche Möglichkeit gibt es, damit es auch da durchsichtig ist?

    Gruß

  • Moin!

    Mozilla macht Iframes immer automatisch transparent, der IE erst auf (nicht HTLM-valide) Anweisung, Opera kann es überhaupt erst seit der Version 9 und braucht dann die gleichen Anweisungen wie der IE.

    So geht es:

    1. im Iframe-Tag den Zusatz allowtransparency="true" notieren
    2. für die im Iframe dargstellten Seiten als Hintergrundfarbe "transparent" wählen.

    G.a.d.M.

    Ronald

  • hi danke für die schnelle antwort
    meinst du so?

    Code
    <td rowspan="3" valign="top"  height="1" class="aufenthalt" width="208" >
     <iframe src="1News/news-auf.html" height="53" width="121" name="aufenthalt" border="0" frameborder="0" scrolling="off" allowtransparency="true" ></iframe></td>

    und dann in der "1News/news-auf.html"

    Code
    <body bgcolor="transparent">

    (http://www.schoenkirchen-handball.de/Christopher/Fehler/HP.html <-- die Datei)

  • in FF ist das jetzt transparent ... aber in FF ist da jetzt ein blauer Hintergrund

    EDIT: ich hätte noch ein zweites Problem!
    Ich möchte, dass sich mit einem Klick auf einen Link 2 Frames ändern.
    Das muss auf der HP 8mal möglich sein.
    Wie mache ich das?

    wird man nicht brauchen aber hier trotzdem der ausschnitt

    Code
    <td height="20" width="55">[b]<font size="2" color="#000000">
                          [url='6Fun/6fun.html']Fun[/url]</font>[/b]</td>

    Gruß

  • Moin!

    Du solltest dich mal mit Stylesheets beschäftigen, damit geht das alles viel einfacher.

    Code
    <td rowspan="3" valign="top"  height="1" class="aufenthalt" width="208" >
     <iframe src="1News/news-auf.html" height="53" width="121" name="aufenthalt" border="0" frameborder="0" scrolling="off" allowtransparency="true"></iframe></td>

    1. Wenn du der Tabellenzelle eine Klasse zuweist, warum defenierst du dann nicht für die Klasse die jetzt in HTML erstellten Formatierungen?
    2. Für 'scrolling' sind die zulässigen Werte "yes, "no" oder "auto", wobei letzteres die Voreinstellung ist. Scrolling="off" gibt es nicht.

    Mit Stylesheets sähe die Quelltext-Passage so aus (sinnlose Formatierungen habe ich gleich ganz weggelassen):

    Code
    <td rowspan="3" class="aufenthalt" style="width:208px" >
     <iframe src="1News/news-auf.html" style="height:53px;width:121px;border:0;overflow:hidden;" name="aufenthalt"  frameborder="0" allowtransparency="true"></iframe>
    </td>


    Wenn du "overflow:auto" nimmst, erscheinen die Scrolleisten nur, wenn sie benötigt werden, bei "overflow:hidden" wird alles was zuviel ist abgeschnitten.

    ... und dann in der "1News/news-auf.html"

    Code
    <body style="background-color:transparent">

    Zu deiner 2. Frage "zwei Framesgleichzeitig ändern":
    Das geht nur mit Javascript. Schau mal ins Unterforum PHP - CGI - Perl - JavaScript und Co., da kommt die Frage alle paar Tage wieder vor. Ich hab dafür meine eigene, m.E. bessere und einfachere Methode, die hier aber irgendwie niemand annehmen will. Wenns es dich interessiert, dann erkläre ich es dir gezielt für deine HP, dafür müßte ich aber mehr davon sehen.

    G.a.d.M.

    Ronald

  • ich kriegs nicht wirklich hin ... das liegt auch daran, dass ich von java keine Ahnung habe.

    Wenn du mir helfen kannst, wäre das super.

    Hier der Quelltext (Hauptdatei; dadrin sind mehrere Frames. Wenn man den inhalt einer dieser Frames anklickt sollen sollen sich 2 andere Frames ändern.)

    hier habe ich einmal makiert, wo die frames liegen und wo geklickt wird. Die Pfeile zeigen welche beiden Frames geändert werden sollen ... die heißen "inhalt" ( der rechte, große) und "aufenthalt" (der kleine oben)
    hier der Link: http://www.schoenkirchen-handball.de/Christopher/frames3.JPG

    bzw. http://www.schoenkirchen-handball.de/Christopher/frames4.JPG
    da ist der "Buttton" wo man raufklickt um das zu ändern nicht in einem frame.

    wenn du noch Informationen brauchst --> schreiben

    Vielen Dank

    Ps.: Hier ist die aktuellste Version der HP
    http://www.schoenkirchen-handball.de/Christopher/Fehler/HP.html

  • Moin!

    Ich hab mir deinen Quelltext jetzt mal angesehen, der steckt leider voller Fehler, die solltest du zunächst mal raus machen. Weiterhin empfehle ich dir, dich mit CSS zu beschäftigen, damit kannst du vieles übersichtlicher und gleichzeitig besser machen.

    Die Fehler (Tidy nennt vieles nur "Warnungen", weil es alleinstehend keine echten Fehler sind):

      Zeile 2 Zeichen 1 - Warnung: Fehlende <!DOCTYPE> Deklaration
      Zeile 5 Zeichen 1 - Warnung: [52]Bei <meta> fehlt ">" als Element-Ende
      Zeile 6 Zeichen 1 - Warnung: Fehlendes </code> vor <meta>
      Zeile 6 Zeichen 1 - Warnung: <meta> ist in <code> Elementen nicht erlaubt
      Zeile 6 Zeichen 1 - Warnung: Fehlendes </code> vor <meta>
      Zeile 6 Zeichen 1 - Warnung: <meta> ist in <code> Elementen nicht erlaubt
      Zeile 6 Zeichen 1 - Warnung: Fehlendes </code> vor <meta>
      Zeile 6 Zeichen 1 - Warnung: <meta> ist in <code> Elementen nicht erlaubt
      Zeile 6 Zeichen 1 - Warnung: Fehlendes </code> vor <title>
      Zeile 6 Zeichen 1 - Warnung: <title> ist in <code> Elementen nicht erlaubt
      Zeile 6 Zeichen 1 - Warnung: Fehlendes </code> vor <link>
      Zeile 6 Zeichen 1 - Warnung: <link> ist in <code> Elementen nicht erlaubt
      Zeile 18 Zeichen 1 - Warnung: [52]Bei <link> fehlt ">" als Element-Ende
      Zeile 6 Zeichen 1 - Warnung: Fehlendes </code> vor <link>
      Zeile 6 Zeichen 1 - Warnung: <link> ist in <code> Elementen nicht erlaubt
      Zeile 24 Zeichen 1 - Warnung: Fehlendes </script>
      Zeile 26 Zeichen 9 - Warnung: Unzulässiges </head> löschen
      Zeile 6 Zeichen 1 - Warnung: Fehlendes </code> vor <body>
      Zeile 28 Zeichen 9 - Warnung: Unzulässiges <body> löschen
      Zeile 78 Zeichen 98 - Warnung: Unzulässiges </a> löschen
      Zeile 81 Zeichen 44 - Warnung: Unzulässiges </font> löschen
      Zeile 81 Zeichen 51 - Warnung: Unzulässiges [/b] löschen
      Zeile 130 Zeichen 13 - Warnung: Fehlendes <tr>
      Zeile 5 Zeichen 1 - Warnung: Bei <meta> fehlt das Attribut "content"
      Zeile 34 Zeichen 1 - Warnung: Element <table> hat proprietäres Attribut "height"
      Zeile 42 Zeichen 17 - Warnung: Element <td> hat proprietäres Attribut "background"
      Zeile 47 Zeichen 9 - Warnung: Element <td> hat proprietäres Attribut "background"
      Zeile 48 Zeichen 11 - Warnung: Element <table> hat proprietäres Attribut "height"
      Zeile 53 Zeichen 11 - Warnung: Element <table> hat proprietäres Attribut "height"
      Zeile 61 Zeichen 2 - Warnung: Element <iframe> hat proprietäres Attribut "border"
      Zeile 61 Zeichen 2 - Warnung: Element <iframe> hat proprietäres Attribut "allowtransparency"
      Zeile 65 Zeichen 11 - Warnung: Element <table> hat proprietäres Attribut "height"
      Zeile 68 Zeichen 17 - Warnung: Element <table> hat proprietäres Attribut "height"
      Zeile 127 Zeichen 1 - Warnung: Element <iframe> hat proprietäres Attribut "border"
      Zeile 127 Zeichen 1 - Warnung: Element <iframe> hat proprietäres Attribut "allowtransparency"
      Zeile 131 Zeichen 1 - Warnung: Element <iframe> hat proprietäres Attribut "border"
      Zeile 131 Zeichen 1 - Warnung: Element <iframe> hat proprietäres Attribut "allowtransparency"
      Zeile 137 Zeichen 1 - Warnung: Element <iframe> hat proprietäres Attribut "border"

      0 Fehler / 38 Warnungen


    Ein großer Teiler der Fehler erledigen sich schon von selbst, wenn du das "<code>" am Anfang deines Quelltextes entfernst.

    Ich habe grade mal versucht den Quelltext entsprechend zu überarbeiten, aber sorry: da steht so viel wirres und sinnloses drinnen (leere Tabellen und leere Tabellenzellen, pp.), daß ich aufgegeben habe, da ich nicht schlau daraus werde, was du erreichen willst.

    Zu deinem Problem:
    Du brauchst in der Navigation gar kein Javascript (das hat mit Java nichts zu tun). Bau einfach in die aufgerufenen Seiten eine Mini-Script ein, welches in den anderen Frame die richtige HTML-Seite nachlädt.
    So geht das:
    1. Lösch aus der Hauptseite deine Javascripts raus. Als Links nimmst du ganz normale a-Verweise.
    2. in die im Hauptframe aufgerufenen Seiten kommen die Javascripts, welche das gewünschte andere I-Frame inhaltlich ändern sollen:

    news.html

    Code
    <script type="text/javascript" language="JavaScript">
    <!--
      parent.frames["aufenthalt"].location.href = "news-auf.html";
    
    
    //-->
    </script>


    oder einfach im Body-Tag

    Code
    <body onload="parent.frames['aufenthalt'].location.href = 'news-auf.html';">

    Für die Anzeige "Aufenthalt" brauchst du übrigens gar kein I-Frame, du kannst per Javascript auch ganz einfach nur den Text ändern und sparst dir damit dann etliche HTML-Seiten.

    Lösche mal das Iframe "aufenthalt" raus und gib der Tabellenzelle in der sich das Iframe befand dafür die Id="aufenthalt".
    Dann kommt in die afgerufene Seite statt dem vorherigen Script

    Code
    <body onload="parent.document.getElementById('aufenthalt').firstChild.data = 'Du hast die News aufgerufen';">


    Es ist im Grunde ganz einfach ;)

    G.a.d.M.

    Ronald

  • Hi,
    vielen Dank für die Hilfe. Ich werde das mit den Fehler mal überarbeiten.

    Ich hatte jetzt folgendes ausprobiert:

    Code
    <tr>
                        <td height="20" width="55">[b]<font size="2" color="#000000">
                          [url='3Mail/3mail.html']Mail[/url]</font>[/b]</td>


    das klappt soweit auch ... aber nur wenn ich das bei einem mache. Bei mehreren geht es nicht mehr.
    Jetzt wollte ich das von dir ausprobieren (das eine war ja auch fast von dir)

    Code
    <body onload="parent.document.getElementById('aufenthalt').firstChild.data = 'Du hast die News aufgerufen';">


    Bei mir verrutscht dann alles. Aber das ist erstmal "egal".

    Wie soll ich die ID dorthin schreiben?

    Code
    <td rowspan="3" valign="top"  height="1" class="aufenthalt" width="208" >
     <iframe src="1News/news-auf.html" height="53" width="121" name="aufenthalt" border="0" frameborder="0" scrolling="no" allowtransparency="true" ></iframe></td>


    dort lösche ich den iframe raus. Aber wo und wie packe ich die ID darein?

    Vielen Dank bisher
    Gruß

  • Erweiterung:

    ich muss bei einem der Links einen PopUp hinzufügen

    Zitat

    wenn ich das zu "Mail" hinzubaue

    Code
    <td height="20" width="55">[b]<font size="2" color="#000000">
                          [url='3Mail/3mail.html']Mail[/url]</font>[/b]</td>

    funktioniert die änderung des frames "aufenthalt" nichtmehr


    .... @ Ronald: Irgendwie will das alles nicht was ich da mache. Kann ich dir die Sachen vlt irgendiwe zukommen lassen und du baust mir das ein?