Показать сообщение отдельно
  #1 (permalink)  
Старый 14.01.2011, 19:53
Новичок на форуме
Отправить личное сообщение для Robox Посмотреть профиль Найти все сообщения от Robox
 
Регистрация: 09.06.2010
Сообщений: 6

Рабочий Undo/Redo, но нужна доработка
Хай. Задался целью прикруить к BB-редактору на форуме функции Undo/Redo
Самый подходящий нашел здесь
Вырезал из скриптового файла всю функциональную часть, отвечающую за юндо/редо
На форуме робит, во всех браузерах, но:
работает только с одним textarea
Если на странце два textarea, то отменяет/возвращает только в нижнем.
ид-имена у textarea, кнопок отмены/возврата и другие ID - уникальны для каждого текстового редактора на одной странице.
Понимаю, что просто совпадение фунок или переменных, но мозговых силенок еще мало в этой области.
Потыкался, сделал, что стало работать, т.е. два текстовых редактора на однйо странице и у обоих независимо работают Undo/Redo, но опять но:
дело в том, надо бекапить не только введеный текст, но бекапить и перед применением BB-кодов, т.е. выделили слово, сделали его [ b ]bbb[ b ] и перед вставкой BBcode тоже забекапить надо, но в варианте, что работает с двумя textarea на одной странце я не могу вызвать функцию бекапа, т.к. эта функа внутренняя
В первом варианте, функа бекапа внешняя и работает, но не работает с двумя textarea

В общем надо, чтобы скрипт работал с неограниченым кол-вом textarea на одной странице и имел возможность вызывать функцию бекапа со стороны.

Как то так.

Оба варианта прикрепил.
Вызываю так после отрисовки textarea:

echo "<script type=\"text/javascript\">UndoRedoFunc('".$this->getName()."');</script>";


из другого скрипта функцию бекапа вызывал так:
jQuery().undo_redo.backup();


Стили:
Код:
.undo_redo_disable {
filter: alpha(opacity=20);
filter: progid:DXImageTransform.Microsoft.Alpha(opacity=20);
-moz-opacity: 0.20;
-khtml-opacity: 0.2;
opacity: 0.2;
}
.undo_redo_enable {
filter: alpha(opacity=100);
filter: progid:DXImageTransform.Microsoft.Alpha(opacity=100);
-moz-opacity: 1.00;
-khtml-opacity: 1.00;
opacity: 1;
}
ну и сами кнопки редактора, на панели кнопок:
echo " <a href='javascript:void(0);'><img src='undo.gif' id='".$this->getName()."_undo' class='undo_redo_disable' alt='Undo' /></a>";
echo " <a href='javascript:void(0);'><img src='redo.gif' id='".$this->getName()."_redo' class='undo_redo_disable' alt='Redo' /></a>";
Вложения:
Тип файла: zip 1.zip (1.0 Кб, 10 просмотров)
Тип файла: zip 2.zip (1.0 Кб, 4 просмотров)

Последний раз редактировалось Robox, 14.01.2011 в 19:56.
Ответить с цитированием