Index: typo3/sysext/rtehtmlarea/htmlarea/htmlarea.js =================================================================== --- typo3/sysext/rtehtmlarea/htmlarea/htmlarea.js (révision 6417) +++ typo3/sysext/rtehtmlarea/htmlarea/htmlarea.js (copie de travail) @@ -192,6 +192,8 @@ HTMLArea.editorCSS = _editor_CSS; // Initialize event cache HTMLArea._eventCache = HTMLArea._eventCacheConstructor(); + // Initialize pending request flag + HTMLArea.pendingSynchronousXMLHttpRequest = false; // Set troubleshooting mode HTMLArea._debugMode = false; if (typeof(_editor_debug_mode) != "undefined") HTMLArea._debugMode = _editor_debug_mode; @@ -2044,6 +2046,11 @@ editor.focusEditor(); if(keyEvent) { + // In Opera, inhibit key events while synchronous XMLHttpRequest is being processed + if (HTMLArea.is_opera && HTMLArea.pendingSynchronousXMLHttpRequest) { + HTMLArea._stopEvent(ev); + return false; + } if(editor._hasPluginWithOnKeyPressHandler) { for (var pluginId in editor.plugins) { if (editor.plugins.hasOwnProperty(pluginId)) { @@ -2709,6 +2716,7 @@ req.open('POST', postUrl, asynchronous); req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8'); if (!asynchronous) { + HTMLArea.pendingSynchronousXMLHttpRequest = true; sendRequest(); if (req.status == 200) { if (typeof(handler) == "function") { @@ -2718,6 +2726,7 @@ } else { HTMLArea._appendToLog("ERROR [HTMLArea::_postback]: Unable to post " + postUrl + " . Server reported " + req.statusText); } + HTMLArea.pendingSynchronousXMLHttpRequest = false; } else { window.setTimeout(sendRequest, 500); }