Index: typo3/sysext/rtehtmlarea/htmlarea/htmlarea-gecko.js =================================================================== --- typo3/sysext/rtehtmlarea/htmlarea/htmlarea-gecko.js (révision 9489) +++ typo3/sysext/rtehtmlarea/htmlarea/htmlarea-gecko.js (copie de travail) @@ -120,27 +120,26 @@ HTMLArea.Editor.prototype.selectNode = function(node, endPoint) { this.focus(); var selection = this._getSelection(); - var range = this._doc.createRange(); - if (node.nodeType == 1 && node.nodeName.toLowerCase() == "body") { - if (Ext.isWebKit) { - range.setStart(node, 0); - range.setEnd(node, node.childNodes.length); - } else { - range.selectNodeContents(node); - } + if (Ext.isWebKit && /^(img)$/i.test(node.nodeName)) { + this._getSelection().setBaseAndExtent(node, 0, node, 1); } else { - if (node.nodeType == HTMLArea.DOM.ELEMENT_NODE && (Ext.isWebKit || Ext.isOpera)) { - range.setStart(node, 0); - range.setEnd(node, 0); + var range = this._doc.createRange(); + if (node.nodeType == 1 && node.nodeName.toLowerCase() == "body") { + if (Ext.isWebKit) { + range.setStart(node, 0); + range.setEnd(node, node.childNodes.length); + } else { + range.selectNodeContents(node); + } } else { range.selectNode(node); } + if (typeof(endPoint) != "undefined") { + range.collapse(endPoint); + } + this.emptySelection(selection); + this.addRangeToSelection(selection, range); } - if (typeof(endPoint) != "undefined") { - range.collapse(endPoint); - } - this.emptySelection(selection); - this.addRangeToSelection(selection, range); }; /* * Select ONLY the contents inside the given node