Bonjour,

Afin de restaurer la position du curseur d'une DIV éditable j'utilise ce code:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
var savedRange,isInFocus;
function saveSelection() {
  if(window.getSelection) { //non IE Browsers
    savedRange = window.getSelection().getRangeAt(0);
  } else if(document.selection) { //IE
    savedRange = document.selection.createRange();  
  } 
}
 
function restoreSelection() {
  isInFocus = true;
  document.getElementById('myInstance1').focus();
  if(savedRange != null) {
    if (window.getSelection) { //non IE and there is already a selection
      var s = window.getSelection();
      if (s.rangeCount > 0) 
        s.removeAllRanges();
      s.addRange(savedRange);
    } else if (document.createRange) { //non IE and no selection
      window.getSelection().addRange(savedRange);
    } else if (document.selection) { //IE
      savedRange.select();
    }
  }
}
Ce code est utilisé pour ajouter du texte contenu dans une textarea dans une DIV éditable myInstance1. Et avec IE cela ajoute le texte au début de la page, donc pas du tout dans la DIV myInstance1.

Cela marche bien avec Firefox et Chrome.

Est-ce que quelqu'un sait pourquoi cela ne marche pas avec IE. J'ai regardé avec google et il y en a qui disent qu'il faut utiliser beforedeactivate (IE only) sur l'élément myInstance1. Mais je ne vois pas du tout comment faire.

Merci.