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 » Fr 10. Jul 2009, 09:11

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: 3143
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Kontaktdaten:

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

Beitrag von xmurrix » Fr 10. Jul 2009, 15:52

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: 4251
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Eltmann, Unterfranken, Bayern
Kontaktdaten:

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

Beitrag von Oldperl » Fr 10. Jul 2009, 16:08

@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 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

Gesperrt