Тема: Selection / Range
Показать сообщение отдельно
  #3 (permalink)  
Старый 11.04.2012, 18:33
Профессор
Посмотреть профиль Найти все сообщения от Антон Крамолов
 
Регистрация: 11.04.2012
Сообщений: 255

function extend(obj, hash) {      
                for (var key in hash) {
                    if (hash.hasOwnProperty(key)) {
                        obj[key] = hash[key];
                    }
                }
            }
            
            function create(tag, props) {
                var el = document.createElement(tag);
                extend(el, props);
                return el;
            }
            
            function select(node) {
                var rng = document.createRange();
                rng.selectNode(node);
                var sel = window.getSelection();
                sel.addRange(rng);
            }
            
            document.onmouseup = function() {              
                var sel = window.getSelection();
                var txt = sel.toString();
                if (txt.trim()) {
                    var rng = sel.getRangeAt(0);                 
                    var el = create('strong', {innerHTML: txt});
                    rng.deleteContents();
                    rng.insertNode(el); // добавил ноду
                    sel.removeRange(rng); // удалил range
                    select(el); // выбрал ноду
                }
            }


http://pastehtml.com/view/buev3zsg0.html не работает в опере и безногом. в фуфлофоксе все ок, как и раньше. что не так?

Последний раз редактировалось Антон Крамолов, 11.04.2012 в 18:37.
Ответить с цитированием