- Offizieller Beitrag
mir scheint es, dass Firefox ab 148 manche E-Mails nicht richtig anzeigt. Nur mit einem STRG+F5 geht es dann wieder. Hat jemand dasselbe Problem?
mir scheint es, dass Firefox ab 148 manche E-Mails nicht richtig anzeigt. Nur mit einem STRG+F5 geht es dann wieder. Hat jemand dasselbe Problem?
Ja, habe ich behoben, das Rendering habe ich über iframe.srcdoc gelöst
function initEMailTextArea(code)
{
var iframe = EBID('textArea'), lastSize = 0, hasRendered = false;
if(!iframe) return;
var resolveDoc = function()
{
return iframe.contentDocument || (iframe.contentWindow && iframe.contentWindow.document) || null;
};
var renderIframeHTML = function()
{
if(!iframe) return null;
// Firefox-safe: srcdoc bevorzugen (kein about:blank load-race)
if('srcdoc' in iframe)
{
try { iframe.srcdoc = code; } catch(e) {}
return resolveDoc();
}
// Fallback: document.write
var d = resolveDoc();
if(!d) return null;
try {
d.open();
d.write(code);
d.close();
} catch(e) {}
return d;
};
var resCB = function()
{
var d = resolveDoc();
if(!d) { window.setTimeout(resCB, 500); return; }
try
{
var h = 0;
var el = d.getElementById('__bmMailText');
if(el)
h = el.clientHeight || 0;
else if(d.documentElement)
h = d.documentElement.scrollHeight || 0;
var iframeHeight = iframe.offsetHeight || iframe.clientHeight || 0;
if(h > lastSize + 60 && h > iframeHeight + 20)
{
iframe.style.height = (h > 140 ? (h + 60) : 200) + 'px';
lastSize = h;
}
}
catch(e) {}
window.setTimeout(resCB, 500);
};
var cb = function()
{
if(!iframe) return;
// nur einmal rendern, danach kein reliance auf load-event
if(!hasRendered)
{
var rendered = renderIframeHTML();
if(!rendered) { window.setTimeout(cb, 50); return; }
hasRendered = true;
try { removeEvent(iframe, 'load', cb); } catch(e) {}
}
var d = resolveDoc();
if(!d) { window.setTimeout(cb, 50); return; }
var mm = function(event)
{
if(typeof(parent._hSepDragging) == 'undefined') return;
if(!parent._hSepDragging && !parent._vSepDragging) return;
if(parent.document.createEvent)
{
var ev = parent.document.createEvent('MouseEvents');
ev.initMouseEvent('mousemove', true, true, window, 0,
event.screenX, event.screenY,
event.screenX - parent.diffScreenClientX,
event.screenY - parent.diffScreenClientX,
false, false, false, false, 0, null);
parent.document.dispatchEvent(ev);
}
};
var mc = function(event)
{
if(parent.document.createEvent)
{
var ev = parent.document.createEvent('MouseEvents');
ev.initMouseEvent('mouseup', true, true, window, 0,
event.screenX, event.screenY,
event.screenX - parent.diffScreenClientX,
event.screenY - parent.diffScreenClientX,
false, false, false, false, 0, null);
parent.document.dispatchEvent(ev);
}
};
addEvent(d, 'mousemove', mm);
addEvent(d, 'click', mc);
resCB();
};
// alte WebKit/Opera-Logik behalten, aber immer cb einmal triggern
if(/WebKit/i.test(navigator.userAgent) || /Opera/i.test(navigator.userAgent))
{
var _isLoaded = false;
setInterval(function()
{
if(/loaded|complete/.test(document.readyState))
{
if(!_isLoaded) cb();
_isLoaded = true;
}
else
_isLoaded = false;
}, 50);
}
else
addEvent(iframe, 'load', cb);
window.setTimeout(cb, 0);
}
Alles anzeigen
Ja, hatte ich auch beobachtet. Habe als Workaround eine empty.html geladen statt about:blank und eine Kleinigkeit im JS angepasst, ohne es genauer analysiert zu haben.
Ja, habe ich behoben, das Rendering habe ich über iframe.srcdoc gelöst
Danke
. KI generiert oder selbst geschrieben?
Danke
. KI generiert oder selbst geschrieben?
KI - ich arbeite momentan an einer neuen Seite da konnte ich das direkt auch mit meinem Testsystem reproduzieren. Läuft produktiv seit einer Woche, die Kunden haben sich auch alle positiv zurückgemeldet, bestes Zeichen^^
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!