FF 3.0.1 reagiert lokal anders als im Netz

  • Hallo Community,

    ich hab einen seltsamen Effekt mit der Version 3.0.1 festgestellt:

    Wenn Ihr z.B. bei http://www.ggt-online.de/branchen/branche_auto.html auf ein Geschäftsbild klickt, wird ein Javascript Programm aufgerufen, dass das Bild dann in größerem Format darstellt.
    Der zughörige HTML Code:
    <a id="beckmann_klaus" href="javascript:bild('../images/mitglied/beckmann_mg.jpg',640,480)">
    <img class="float_left border" src="../images/mitglied/beckmann_m.jpg" alt="" title="Mercedes Beckmann" width="140" height="105" /></a>
    So soll es auch sein.
    Das ganze lokal bei mir auf dem PC funktioniert nur dann, wenn ich mit der relativen Adressierung des Bildes in der Javascript Funktion eine Ebene höher ziele, also:
    <a id="beckmann_klaus" href="javascript:bild('./images/mitglied/beckmann_mg.jpg',640,480)">
    <img class="float_left border" src="../images/mitglied/beckmann_m.jpg" alt="" title="Mercedes Beckmann" width="140" height="105" /></a>
    Man achte darauf, dass in der Adresse der Javascript Funktion jetzt ein Punkt weniger ist, d.h. der Ordner images jetzt auf der gleichen Ebene angenommen wird. Schade, dass ich Euch das, was bei lokal auf dem PC passiert, hier nicht demonstrieren kann.
    Das Ganze gilt auch nur dann, wenn meine HTML Seite eine Ebene tiefer liegt als z.B. die index.html (s. oben: liegt im Ordner branchen). Denn in diesem Beispiel http://www.ggt-online.de/gewerbeschau.html (bitte auf ein Bild klicken) gibt es z.B. keinen Unterschied zwischen lokal und Netz.

    Der IE 7.0 zeigt diesen Effekt nicht, dort werden alle Bilder standardgemäß angezeigt.

    Hat jemand eine Erklärung für dies Verhalten?

  • Hallo,

    ein ähnliches Problem gab es schon mar hier.

    Leider auch keinen direkten Lösungsansatz, allerdings wird das Problem sehr wahrscheinlich in der Applikation(Seite) selbst zu suchen sein.

    Meine aktuell benutzte Konfiguration !
    Nicht der Wind bestimmt die Richtung, sondern das Segel ! (Lao Xiang, China)
    Wandel und Wechsel liebt, wer lebt ! (Richard Wagner, Bayreuth)
    Seit wann sind wir dem Wähler - und nicht nur Gott - Rechenschaft schuldig ?! (CSU, München)

  • Zitat von liracon

    ..allerdings wird das Problem sehr wahrscheinlich in der Applikation(Seite) selbst zu suchen sein.

    das ist auch mein Verdacht, kenne mich aber NULL aus mit Seitenprogrammierung.

  • Hallo an alle,

    Zitat von liracon

    ein ähnliches Problem gab es schon mar hier.


    Ich hab bei hier mal angefragt, wie ich auch an das Update kommen kann, das er ja wohl bekommen hat. Vielleicht funktioniert es dann ja auch bei mir.

    Das es an der Applikation liegen soll, kann ich irgendwie nicht nachvollziehen. Denn die einzige Änderung war das Update auf FF 3.0.1 - vorher ging ja alles reibungslos.

    Wenn Euch noch etwas einfallen sollte - bin immer für jeden Tipp dankbar.

    Gruß
    Bruno

  • Zitat

    Das ganze lokal bei mir auf dem PC funktioniert nur dann, wenn ich mit der relativen Adressierung des Bildes in der Javascript Funktion eine Ebene höher ziele


    Was heißt "lokal"? Auf deinem lokalen Webserver? Oder wie und wo hast du was gespeichert?

    Zitat

    Ich hab bei hier mal angefragt, wie ich auch an das Update kommen kann


    Was hat denn das Update für die Sprachen-CD mit deiner Webseite zu tun?

    Zitat

    Schade, dass ich Euch das, was bei lokal auf dem PC passiert, hier nicht demonstrieren kann.


    Weshalb nicht? Kopiere die relevanten Dateien in ein Zip-File, dass auch deine Verzeichnis-Hierarchie wiederspiegelt und stell das zur Verfügung. Das kann dann jeder lokal bei sich testen.

  • https://bugzilla.mozilla.org/show_bug.cgi?id=444554

    Das dort geschilderte Problem kann ich nicht reproduzieren.

    Dateien:
    /home/user/Desktop/test/subdir/subdir/seite.html
    /home/user/Desktop/test/subdir/pic.png
    /home/user/Desktop/test/pic.png

    URL:
    file:///home/user/Desktop/test/subdir/subdir/seite.html

    seite.html:

    Beide Bilder werden tadellos dargestellt.

  • Hi Boardraider und hi alle anderen,

    Zitat

    Weshalb nicht? Kopiere die relevanten Dateien in ein Zip-File, dass auch deine Verzeichnis-Hierarchie wiederspiegelt und stell das zur Verfügung. Das kann dann jeder lokal bei sich testen.

    Genau das hab ich jetzt einmal gemacht. Ihr findet die Zip-Datei HIER. Im Netz findet Ihr die komplette Site HIER - dort funktioniert auch alles einwandfrei.

    Um die Datei (sie ist immer noch ca. 6,6 MB groß) nicht zu groß werden zu lassen, hab ich die meisten Bilder rausgelassen. Zum Testen müsstet Ihr also die Zip Datei auf Eurem PC extrahieren - lokal auf Eurem PC, nicht auf einem lokalen Webserver! - und dann vom Hauptmenu "GGT Geschäfte" aufrufen. Bilder gibt es dort nur beim Untermenu "Banken" - alle anderen Bilder hab ich gelöscht. Wie gesagt - die Bilder werden lokal vom FF nicht angezeigt, vom IE 7.0 schon. An anderer Stelle, z.B. beim Hauptmenu "Gewerbeschau" aber schon.

    Die Verzeichnisstruktur von Test.zip entspricht genau meiner Verzeichnisstruktur.

    Bin einmal gespannt, ob Ihr das Problem bei Euch reproduzieren könnt. Falls das wichtig ist - ich fahre Windows Vista.

    Gruß
    Bruno

  • Es sind zu viele ../

    Es gibt einen Unterschied zwischen lokalen Dateien und Dateien auf dem Server, und das ist auf dem Server das Server-Root.

    Ein Bezug ../ wird von einem gut gewarteten Server nicht akzeptiert, sprich ignoriert, wenn es eine höhere Ebene als die vom Server-Root gegebene Verzeichnisebene ansprechen sollte.

    Das lokale OS hingegen versucht dem zu entsprechen, geht eine Ebene höher und findet die Datei nicht. Kopiert man aus Deinem Beispiel den Ordner "images" eine Ebene höher, werden die Grafiken ohne Problem angezeigt.

    Wenn Du eine lokale und auch funktionierende Struktur auf den Server ablegst, werden beide gleichermaßen funktionieren.

    P.S. Die Ablage einer angepassten Version auf einem Server wurde jetzt nicht getestet.

  • Zitat

    Ein Bezug ../ wird von einem gut gewarteten Server nicht akzeptiert, sprich ignoriert, wenn es eine höhere Ebene als die vom Server-Root gegebene Verzeichnisebene ansprechen sollte.

    Das lokale OS hingegen versucht dem zu entsprechen, geht eine Ebene höher und findet die Datei nicht. Kopiert man aus Deinem Beispiel den Ordner "images" eine Ebene höher, werden die Grafiken ohne Problem angezeigt.


    Nach diesem Ansatz funktioniert es auf dem Server nur deshalb, weil das vorangestellte ../ vom Server ignoriert wird. Wenn man die Seite nun eine Verzeichnis-Hierarchieebene tiefer zieht, dann müsste der Server die Punkte entsprechend werten und dann dürfte es eigentlich nicht mehr klappen, da die relative Adresse wie im Falle eines Zugriffs über file:// falsch ist.

    Kopiert man das aber eine Ebene tiefer auf einem Server, klappt es trotzdem. Der Ansatz kann also so nicht zutreffen.

    Vielmehr funktioniert dann auch eine angepasste Version (ob mit ./ oder mit images/) nicht mehr.

  • Das Problem konnte ich sogar erzeugen, allerdings gab es die paradoxe Situation, dass es stellenweise auch funktionierte. Es muss also Randbedingungen geben, die das beeinflussen.

    Edit:
    Mit einem jungfräulichen Profil konnte ich stabil folgendes reproduzieren:

    - Firefox neu starten
    - Die Seite file:///home/user/Desktop/Test/index.html aufrufen
    - Sich zu file:///home/user/Desktop/Test/branchen/branche_bank.html durchklicken
    - Das erste Bild anklicken
    - Es öffnet sich ein Popup ohne korrekte Bildanzeige mit dem URL file:///home/user/Desktop/Test/index.html
    - Der Bild-URL zeigt fälschlicherweise nach file:///home/user/Desktop/images/mitglied/bhwg.jpg

    Hingegen:

    - Firefox neu starten
    - Die Seite file:///home/user/Desktop/Test/branchen/branche_bank.html direkt aufrufen
    - Das erste Bild anklicken
    - Es öffnet sich ein Popup mit korrekter Bildanzeige und dem URL file:///home/user/Desktop/Test/branchen/branche_bank.html
    - Der Bild-URL zeigt korrekt nach file:///home/user/Desktop/Test/images/mitglied/bhwg.jpg

    Des weiteren:

    - Firefox neu starten
    - Die Seite
    file:///home/user/Desktop/Test/mitglieder_bereich/GGT_mitglieder_aktuell.html direkt aufrufen
    - Sich zu file:///home/user/Desktop/Test/branchen/branche_bank.html durchklicken
    - Das erste Bild anklicken
    - Es öffnet sich ein Popup mit korrekte Bildanzeige und dem URL
    file:///home/user/Desktop/Test/branchen/namen.html
    - Der Bild-URL zeigt korrekt nach file:///home/user/Desktop/Test/images/mitglied/bhwg.jpg

    Zudem:

    - Firefox neu starten
    - Die Seite file:///home/user/Desktop/Test/GGT_GGT.html aufrufen
    - Sich zu file:///home/user/Desktop/Test/branchen/branche_bank.html durchklicken
    - Das erste Bild anklicken
    - Es öffnet sich ein Popup ohne korrekte Bildanzeige mit dem URL file:///home/user/Desktop/Test/GGT_GGT.html
    - Der Bild-URL zeigt fälschlicherweise nach file:///home/user/Desktop/images/mitglied/bhwg.jpg

    Zwei Beobachtungen dazu:
    Ob der Bild-URL korrekt ist hängt vom Bezugs-URL des Popup-Fensters ab. Steht dieser in der Verzeichnishierarchie in der richtigen Ebene, passt der relative Zugriff.
    Welchen URL das Popup-Fenster hat, hängt scheinbar mit dem Einstiegspunkt in die lokale Seite zusammen.

    Ich kann mir darauf gegenwärtig keinen Reim machen.

  • Hi an alle,

    Zitat

    Ein Bezug ../ wird von einem gut gewarteten Server nicht akzeptiert, sprich ignoriert, wenn es eine höhere Ebene als die vom Server-Root gegebene Verzeichnisebene ansprechen sollte.

    Das würde ich wohl verstehen - aber der Fall liegt ja bei mir nicht vor, glaube ich jedenfalls. Mein JavaScript Programm hat mir mit NewWindow.document.write (...) dies HTML File erstellt. Aufgerufen wird es über NewWindow=window.open (...).

    <html><head><title>Bildanzeige</title></head><body bgcolor='#cccccc' onload='focus()'><table align='center'><tr><td align='center' valign='top'><table border='1' bgcolor='#000000' cellpadding='0' cellspacing='1'><tr><td align='center'><img src='../images/mitglied/tea_coffeeg.jpg' /></td></tr></table></td></tr><tr><td align='center' valign='bottom'><center><form><input type='button' value='FENSTER SCHLIESSEN' style='font-family: Verdana; font-size: 10px' onClick='self.close()'></form></center></td></tr></table></body></html>

    Aufgerufen wird die Funktion bild (...) von HTML Seiten, die auf http://www.ggt-online.de/branchen/ liegen. Die Bilder liegen auf http://www.ggt-online.de/images/. Dann ist die Syntax oben (<img src='../images/mitglied/tea_coffeeg.jpg' />) doch logisch richtig und auch mein lokales OS müsste die Datei finden.

    Zitat

    Kopiert man aus Deinem Beispiel den Ordner "images" eine Ebene höher, werden die Grafiken ohne Problem angezeigt.

    Genau das hab ich lokal einmal gemacht - es funktioniert tatsächlich, die Bilder werden angezeigt. Nun verstehe ich gar nichts mehr.

    Zitat

    Wenn Du eine lokale und auch funktionierende Struktur auf den Server ablegst, werden beide gleichermaßen funktionieren.

    Könntest Du mir dafür bitte einmal ein Beispiel geben? Ich verstehe jetzt nämlich wirklich nur noch Bahnhof.
    Dies ist der HTML Code auf den Seiten im Ordner "branchen":

    <script src="../css/bild.js" type="text/javascript"></script>
    <div class="float_left block"><a id="tea_coffee" href="javascript:bild('../images/mitglied/tea_coffeeg.jpg',640,480)">
    <img class="float_left border" src="../images/mitglied/tea_coffee.jpg" alt="" title="all about Tea & Coffee" width="140" height="105" /></a>

    Vor allen Dingen verstehe ich nicht, warum der Effekt nur beim FF auftritt und beim IE 7.0 nicht.

    Gruß
    Bruno

  • https://bugzilla.mozilla.org/show_bug.cgi?id=317586
    Das dürfte die Erklärung sein. Hat sich seit 2005 keine Sau für interessiert. Allerdings ist dann die Frage, wie sich die Versionen von 1.0.7 bis heute in der Hinsicht verhalten haben.

    Edit:
    https://bugzilla.mozilla.org/show_bug.cgi?id=441918
    Noch ein aktueller Eintrag diesbezüglich.

  • Na gut - oder auch nicht gut.

    Nun wissen wir also, dass es vermutlich ein altbekanntes Problem ist, eine Lösung dafür haben wir allerdings immer noch nicht.

    Meiner Meinung nach muss es auch noch andere Faktoren geben, die damit reinspielen. Denn ich bin mir absolut sicher, dass es mit FF 1.x und FF 2.x noch einwandfrei ging - zumindest bei mir lokal. Der Effekt trat erst mit FF 3.x auf.

    Kennt jemand einen workaround oder müssen wir den Bug erst mal so akzeptieren?

  • Das Problem kannst du natürlich über JS abfangen. Allerdings stellt sich die Frage wozu? Über das http-Protokoll funktioniert es ja tadellos. Letztlich beschränkt es dich nur minimal bei der Entwicklung.
    Wenn es für dich kein Overkill ist, kannst du auch auf einem lokalen Webserver entwickeln, das ist ohnehin näher an der realen Seite. Dort findet sich das Problem nicht.

    Über JS müsstest du in dem Fall abfragen, wie der aktuelle Verzeichnis-Bezug über das file-Protokoll ist und demnach ggf. den einen Punkt vorn abschneiden.

  • Noch mehr Referenzen:
    https://bugzilla.mozilla.org/show_bug.cgi?id=442244
    Dort wird auch angemerkt, dass das Problem im Fx2 nicht auftrat.

    https://bugzilla.mozilla.org/show_bug.cgi?id=445004