Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #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.
Ответить с цитированием
  #2 (permalink)  
Старый 15.01.2011, 02:12
Новичок на форуме
Отправить личное сообщение для Robox Посмотреть профиль Найти все сообщения от Robox
 
Регистрация: 09.06.2010
Сообщений: 6

Приложил третий вариант, рабочий с несколькими textarea на одной странице и не требующий внешнего вызова функции бекапа, в общем чего и добивался.
сделал так:
если вставляются BB-теги вокруг текста или просто вставляют BB-теги при нажатии кнопок на панели редактора, то ведь после вставки тегов textarea получает фокус.
Ну и собственно при получении фокуса срабатывает:
areaid.focusin(backup);

которое и бекапит данные из textarea

на большего ума нехватило
Вложения:
Тип файла: zip 3.zip (978 байт, 15 просмотров)
Ответить с цитированием
  #3 (permalink)  
Старый 09.02.2017, 18:40
Новичок на форуме
Отправить личное сообщение для irbees2008 Посмотреть профиль Найти все сообщения от irbees2008
 
Регистрация: 29.09.2014
Сообщений: 9

Всем привет, вопрос по теме, воспользовался этим вариантом , поскольку других не нашел, сам вопрос , подключил скрипт на странице
<script type="text/javascript" src="{{ skins_url }}/js/3.js"></script>
<script type="text/javascript">UndoRedoFunc('ng_news_content');</script>

и кнопки
так
<a href='javascript:void(0);'><img src='undo.gif' id='ng_news_content_undo' class='undo_redo_disable' alt='Undo' /></a>
	<a href='javascript:void(0);'><img src='redo.gif' id='ng_news_content_redo' class='undo_redo_disable' alt='Redo' /></a>

Но не работает ,что может быть не так, и вопрос можно кнопки переделать на onclick
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужна помощь dominosoko Серверные языки и технологии 4 14.03.2010 02:17
НУжна помощ ! Jumong Общие вопросы Javascript 4 01.10.2008 23:17