Seite 1 von 1
IE8: Wieder JS Fehler in Popup-Dateibrowser!
Verfasst: Fr 10. Jul 2009, 09:11
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
Re: IE8: Wieder JS Fehler in Popup-Dateibrowser!
Verfasst: Fr 10. Jul 2009, 15:52
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
Re: IE8: Wieder JS Fehler in Popup-Dateibrowser!
Verfasst: Fr 10. Jul 2009, 16:08
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.
