git-svn-id: https://svn.typo3.org/TYPO3v4/Core/trunk@6390 709f56b5-9817-0410-a4d7...
authorStanislas Rolland <typo3@sjbr.ca>
Mon, 9 Nov 2009 13:35:19 +0000 (13:35 +0000)
committerStanislas Rolland <typo3@sjbr.ca>
Mon, 9 Nov 2009 13:35:19 +0000 (13:35 +0000)
ChangeLog
typo3/sysext/rtehtmlarea/ChangeLog
typo3/sysext/rtehtmlarea/htmlarea/htmlarea.js

index 89e28b9..7f0c4a6 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2009-11-09  Stanislas Rolland  <typo3@sjbr.ca>
+
+       * Follow-up to #11847: htmlArea RTE displays empty editing area in Opera 10
+
 2009-11-09  Steffen Kamper  <info@sk-typo3.de>
 
        * Fixed bug #10128: JavaScript error upon login
index 43c67bd..fbd2b74 100644 (file)
@@ -1,3 +1,7 @@
+2009-11-09  Stanislas Rolland  <typo3@sjbr.ca>
+
+       * Follow-up to #11847: htmlArea RTE displays empty editing area in Opera 10
+
 2009-11-06  Stanislas Rolland  <typo3@sjbr.ca>
 
        * Fixed bug #12481: AllowClipboard Helper Firefox extension does not work with FF 3.5
index 4d79760..e3d4c7a 100644 (file)
@@ -833,8 +833,8 @@ HTMLArea.prototype.generate = function () {
        this._iframe = iframe;
        HTMLArea._appendToLog("[HTMLArea::generate]: Editor iframe successfully created.");
        if (HTMLArea.is_opera) {
-                       // Opera 10 needs lots of time here...
-               window.setTimeout("HTMLArea.initIframe(\'" + this._editorNumber + "\');", 200);
+               var self = this;
+               this._iframe.onload = function() { self.initIframe(); };
        } else {
                this.initIframe();
        }
@@ -1086,10 +1086,17 @@ HTMLArea.prototype.stylesLoaded = function() {
        var stylesAreLoaded = true;
        var errorText = '';
        var rules;
-       for (var rule = 0; rule < doc.styleSheets.length; rule++) {
-               if (HTMLArea.is_gecko) try { rules = doc.styleSheets[rule].cssRules; } catch(e) { stylesAreLoaded = false; errorText = e; }
-               if (HTMLArea.is_ie) try { rules = doc.styleSheets[rule].rules; } catch(e) { stylesAreLoaded = false; errorText = e; }
-               if (HTMLArea.is_ie) try { rules = doc.styleSheets[rule].imports; } catch(e) { stylesAreLoaded = false; errorText = e; }
+       if (HTMLArea.is_opera) {
+               if (doc.readyState != "complete") {
+                       stylesAreLoaded = false;
+                       errorText = "Stylesheets not yet loaded";
+               }
+       } else {
+               for (var rule = 0; rule < doc.styleSheets.length; rule++) {
+                       if (HTMLArea.is_gecko) try { rules = doc.styleSheets[rule].cssRules; } catch(e) { stylesAreLoaded = false; errorText = e; }
+                       if (HTMLArea.is_ie) try { rules = doc.styleSheets[rule].rules; } catch(e) { stylesAreLoaded = false; errorText = e; }
+                       if (HTMLArea.is_ie) try { rules = doc.styleSheets[rule].imports; } catch(e) { stylesAreLoaded = false; errorText = e; }
+               }
        }
        if (!stylesAreLoaded && !HTMLArea.is_wamcom) {
                HTMLArea._appendToLog("[HTMLArea::initIframe]: Failed attempt at loading stylesheets: " + errorText + " Retrying...");