Программирование > JavaScript & JScript
Wysiwyg Едитор- нужная вещь в хозяйстве!
Гость:
--- Цитировать ---Просто надо ручками пописать...
--- Конец цитаты ---
Оппа... А поподробнее можно? Где копать? Это было бы очень даже удачное решение.
ThE0ReTiC:
примерно так:
--- Код: ---
function voidEditTable(){
if(isEditMode)return;
comments.focus();
var dArgs=\'\';
if(PREV_CONTROL && PREV_CONTROL.tagName==\'TABLE\' && document.selection.type==\'Control\'){
dArgs=PREV_CONTROL;
}
var oTable=showModalDialog(\'/tb/table.phpx\',dArgs,\'dialogHeight:400px;dialogWidth:400px;center:yes;resizable:no;scroll:no;status:no\');
if(oTable){
var sTable=\'\\n\';
sTable+=oTable;
sTable+=\'\';
document.selection.clear();
var oRange=document.selection.createRange()
oRange.pasteHTML(sTable);
}
}
--- Конец кода ---
когда допишу и отлажу - выложу тут...
dub:
ThE0ReTiC
Со вставкой таблицы все, в принципе ясно. Если отвлечься от PREV_CONTROL, то посредством диалогового окна формируется HTML-код таблицы, который затем с помощью объекта selection и методов createRange() и pasteHTML() вставляются в редактируемый документ. Кстати, ИМХО корректнее функция работает без строки с selection.clear(). Во всяком случае, если что-то выбрано, то оно и так удаляется методом pasteHTML. Если же не выбрано ничего, то вставляется таблица на место курсора. А строка selection.clear() без видимого смысла удаляет следующий за курсором (или выбранным отрезком текста) символ. То есть: если таблицу вставлять, расположив курсор посредине слова "таблица" между букв "б" и "л", то после вставки получим "таб[тело_таблицы]ица, с потерей буквы "л". Во всяком случае, у меня так.
Освети, пожалуйста, общие принципы создания функций для вставки/удаления строк, вставки/удаления столбцов, объединения и разбиения ячеек. Какие объекты, свойста, методы, наборы использовать в этом процессе? DHTML Object Model для меня штука новая, сложновато ее объять пока.
Первое, напимер, чего я не понимаю, это как перейти от положения курсора (или выбранного текста) к ячейке, его содержащей. Ну и т.д...
Макс:
Поищи на msdn-е статью "How to Build Tables Dynamically". Там все ясно описано.
--- Цитировать ---Первое, напимер, чего я не понимаю, это как перейти от положения курсора (или выбранного текста) к ячейке, его содержащей. Ну и т.д...
--- Конец цитаты ---
через oRange.parentElement()
dub:
Макс
Вроде нашел. Спасибо, углубляюсь.
Навигация
Перейти к полной версии