несколько execCommand в Opera
Здравствуйте, кто-нибудь знает как в Опере применить форматирование текста по нескольким парметрам сразу? Например вот так подряд:
Код:
oifr.document.execCommand("FontSize",false,"7"); Код:
oifr.document.execCommand("FontSize",false,"7"); Выход пока вижу один.. после каждого применения параметра форматирования ставить программно один символ, после завершения всех параметров по которым надо отформатировать удалить весь образованный вспомогательный текст из этих символов и сохранить при этом достигнутое мультиформатирование. Только как это конкретно сделать, какими конкретными командами...? |
Это wysiwyg форма? Лучше не опираться на execCommand, а работать с выделением и "оборачивать" элементы через DOM.
|
Цитата:
Но после постоянных пыток-попыток я достиг в опере довольно неплохого(во всяком случае для себя приемлемого, однако не идеального) решения: execCommand=function(win,command, val) { if($.browser.opera){ var s=win.getSelection(); var r=s.getRangeAt(0); if(r.cloneContents().textContent=="") { var n = win.document.createElement('span'); n.innerHTML = ' '; n.id="cursor"; r.insertNode(n); s.removeAllRanges(); s.addRange(r); }; }; win.document.execCommand(command,false,val); }; это надстройка над уже существующим методом execCommand ($ - знак объекта jQuery если кто не знает) далее. а в обработчиках нажатии кнопок и установки курсора мышкой, т.е. в методах $(doc).mousedown, $(doc).mouseup и $(doc).keydown удалять искусственный курсор: var el = $("#cursor",doc); if(el.html() == ' ') { el.remove(); }else{ el.removeAttr('id'); }; конечно хотелось бы чтобы при приемении форматирования к пустому курсору(не выделению) не появлялся бы на глаза выделяемый прямоугольничек.. ,как не пробывал его удалить с глаз - без него нельзя, но это уже мелочь, замечу что в казалось бы продвинутом tiny редакторе данная проблема вообще не решается.. и там не устранен глюк с мультиформатированием в опере. Вообщем правило для Оперы как я понял таково - мультиформатирование можно применять только к непустой области выделения(не к курсору). |
mister_maxim,
В работе с выделением и с клавиатурным вводом в браузере Опера - сплошные проблемы. |
Часовой пояс GMT +3, время: 11:08. |