IE8: Wieder JS Fehler in Popup-Dateibrowser!

Gesperrt
notaus
Beiträge: 98
Registriert: Di 13. Dez 2005, 14:18
Kontaktdaten:

IE8: Wieder JS Fehler in Popup-Dateibrowser!

Beitrag von notaus »

Hallo,

mit dem IE 8 taucht das alte Problem mit dem Dateibrowser wieder auf.
http://forum.contenido.org/viewtopic.ph ... 8&p=124186

Für Ie7 und andere Browser scheint die dort dargestellte Lösung zu funktionieren, im IE8 kommt wieder die Fehlermeldung: "top.content.left" ist Null oder kein Objekt.

Hat wer eine Lösung parat?

Grüße
Christian
xmurrix
Beiträge: 3215
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 17 Mal
Kontaktdaten:

Re: IE8: Wieder JS Fehler in Popup-Dateibrowser!

Beitrag von xmurrix »

Hallo notaus,

du kannst in der contenido/templates/standard/frameset_content.html dies Abfangen. Ändere die JS-Funktion initFrame() von

Code: Alles auswählen

function initFrame() {
    if (!top.content.left || !top.content.left.left_top || !top.content.left.left_top.document || !top.content.left.left_top.document.body || top.content.left.left_top.document.getElementsByTagName('body')[0].offsetHeight == 0) {
    ...
}
in

Code: Alles auswählen

function initFrame() {
    if (typeof(top.content) == "undefined") {
        return;
    }
    if (!top.content.left || !top.content.left.left_top || !top.content.left.left_top.document || !top.content.left.left_top.document.body || top.content.left.left_top.document.getElementsByTagName('body')[0].offsetHeight == 0) {
    ...
}
Das ist zwar keine elegante Lösung, sorgt aber dafür, dass keine Fehlermeldung erscheint.


Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
Oldperl
Beiträge: 4316
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Hat sich bedankt: 6 Mal
Danksagung erhalten: 4 Mal
Kontaktdaten:

Re: IE8: Wieder JS Fehler in Popup-Dateibrowser!

Beitrag von Oldperl »

@xmurrix
Upss, da haben wohl 2 gleichzeitig an dem Problem geknabbert. ;-)

Nun gut, hier meine Lösung, die im Gegensatz zur Lösung von xmurrix weiterhin in allen Bereichen der Dateiverwaltung, ob im Backend oder im PopUp, die Funktion resizeTopLeftFrame ausführt, wenn der entsprechende Frame geladen wird/ist.

Bitte, ebenfalls in der Datei contenido/templates/standard/frameset_content.html, besagte JS-Funktion (initFrame) durch folgende ersetzen

Code: Alles auswählen

/* modified 2009-07-10 Ortwin Pinke, using try & catch now for better crossbrowser compability */     
function initFrame() {    
    try {
      var iHeight = window.frames['left'].left_top.document.getElementsByTagName('body')[0].offsetHeight;
      frameResize.resizeTopLeftFrame(iHeight+1);
    } catch(e) {
      if(e) window.setTimeout("initFrame()", 250);
    }
}
Das Ganze ist getestet in IE8 und FF3, über weitere Tests würde ich mich freuen. ;-)

Gruß aus Franken

Ortwin

PS: Natürlich verschoben nach Bugs und wenn getestet in der nächsten Version von Contenido. 8)
ConLite 3.0.0-dev, alternatives und stabiles Update von Contenido 4.8.x unter PHP 8.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
Gesperrt