7
votes

Sélection StartContainer dans IE

J'ai un objet de sélection où dans IE, je gère

range     = selection.getRangeAt(0);
firstNode = range.startContainer;


0 commentaires

3 Réponses :


-1
votes

Je travaille aussi sur quelque chose de similaire. Je n'ai pas encore eu à la partie IE, mais je suggérerais d'itération dans la liste des propriétés de la gamme et de voir ce qui est disponible pour vous

var msg = '';
for (var i in range) {
    msg += i + ': ' + range[i] + '\n';
}
alert(msg);


0 commentaires

0
votes

Je viens de tomber sur ce problème. Je ne trouve pas une solution élégante alors voici une inélégante:

Remarque: il ne fonctionnera que si le conteneur de démarrage dispose d'un identifiant p>

premier chèque si le navigateur est IE. Ensuite, P>

            // var range should be your TextRange object
            var matches = range.htmlText.match(/<[^>]* id=([^\s]+)[^>]*>/);
            if (matches) {
                var startContainer = document.getElementById(matches[1]);
                if (startContainer) {
                    ...
                }
            }


0 commentaires

2
votes

[Son été deux ans.] Ok, ça va être laid, mais je pense avoir la réponse à cette question (semble fonctionner sur IE8). Le code est le suivant (explication est dans les commentaires): XXX

Désolé pour les commentaires excessifs (je pense que c'était nécessaire). Une fois que vous avez supprimé tous ces commentaires, vous obtenez du code qui est ... moins moche: p.


1 commentaires

Wow, bonne idée! Tnx une fortune!