Index: typo3/sysext/rtehtmlarea/htmlarea/htmlarea-gecko.js
===================================================================
--- typo3/sysext/rtehtmlarea/htmlarea/htmlarea-gecko.js (révision 10147)
+++ typo3/sysext/rtehtmlarea/htmlarea/htmlarea-gecko.js (copie de travail)
@@ -86,7 +86,11 @@
* Create a range for the current selection
*/
HTMLArea.Editor.prototype._createRange = function(sel) {
- if (Ext.isWebKit) {
+ if (Ext.isEmpty(sel)) {
+ return this._doc.createRange();
+ }
+ // Older versions of WebKit did not support getRangeAt
+ if (Ext.isWebKit && !sel.getRangeAt) {
var range = this._doc.createRange();
if (typeof(sel) == "undefined") {
return range;
@@ -104,9 +108,6 @@
return range;
}
}
- if (Ext.isEmpty(sel)) {
- return this._doc.createRange();
- }
try {
return sel.getRangeAt(0);
} catch(e) {
@@ -219,8 +220,11 @@
var selection = this._getSelection();
}
var ranges = [];
- for (var i = selection.rangeCount; --i >= 0;) {
- ranges.push(selection.getRangeAt(i));
+ // Older versions of WebKit did not support getRangeAt
+ if (selection.getRangeAt) {
+ for (var i = selection.rangeCount; --i >= 0;) {
+ ranges.push(selection.getRangeAt(i));
+ }
}
return ranges;
};
@@ -231,9 +235,11 @@
if (!selection) {
var selection = this._getSelection();
}
- this.emptySelection(selection);
- for (var i = ranges.length; --i >= 0;) {
- this.addRangeToSelection(selection, ranges[i]);
+ if (selection.getRangeAt) {
+ this.emptySelection(selection);
+ for (var i = ranges.length; --i >= 0;) {
+ this.addRangeToSelection(selection, ranges[i]);
+ }
}
};
/*