несколько 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, время: 00:05. |