document.sélection.createRange() ne fonctionne pas sous IE

J'ai essayé de faire un simple de facturation à l'utilisation de l'éditeur, mais le document.sélection.createRange() ne fonctionne pas sous IE, et il ne comprend pas le texte surligné(essayez d'alerter le texte en surbrillance encore rien obtenir). Je ne suis pas encore en mesure de trouver la raison et de résoudre cela.

Vous pouvez jeter un oeil à ce script en action ici

window.onload = function () {
    var ubb = document.getElementById('ubb_code');
    var ubba = ubb.getElementsByTagName('a');//ubb buttons
    var textarea = document.getElementsByTagName('textarea')[0];//editable textarea filed 

    //onclick to insert ubbcode
    ubba[0].onclick = function() {
        tag('[b]','[/b]');
    };

    //function used to insert ubbcode
    function tag(tag1,tag2){
        //code for IE
        if (document.selection){
            textarea.focus();
            var sel = textarea.document.selection.createRange();//It DOES NOT work!
            //alert(sel.text);
            sel.text = tag1 + sel.text + tag2;
        }else{  
        //code for none-IE webbrowsers
            var len = textarea.value.length;
            var start = textarea.selectionStart;
            var end = textarea.selectionEnd;


            var scrollTop = textarea.scrollTop;
            var scrollLeft = textarea.scrollLeft;


            var sel = textarea.value.substring(start, end);
            //alert(sel);
            var rep = tag1 + sel + tag2;
            textarea.value =  textarea.value.substring(0,start) + rep + textarea.value.substring(end,len);

            textarea.scrollTop = scrollTop;
            textarea.scrollLeft = scrollLeft;
        }
}
si vous utilisez document.sélection.createRange() pour IE et veulent garder le texte en surbrillance lorsque vous déclenchez une fonction, utilisez onmousedown au lieu de onclick, cause onclick va détruire la sélection dans IE!

OriginalL'auteur marcel | 2012-04-26