Перейти к контенту

Как вставить текст при использовании RTE?


Рекомендуемые сообщения

Функция

function ins(name)
{
my_show_div(my_getbyid('qr_open'));
if (document.REPLIER.Post)
{
	var input=document.REPLIER.Post;
	input.value=input.value+"[b]"+name+"[/b]"+" \n"
}
}

 

прекрасно работает с одключенным RTE, а с включенным - никак =(((

Ссылка на комментарий
Поделиться на других сайтах

там уже не в textarea текст надо вставлять, а в iframe, насколько я знаю.

и не с bb-кодами, а уже в голом html.

 

наверняка в новой версии есть функции для вставки текста в редактор с помощью js.

Ссылка на комментарий
Поделиться на других сайтах

Наверняка есть, только я без понятия, как их искать. Знатоки структуры IPB, подскажите :D Ведь все JS наверняка уже изучены вами...
Ссылка на комментарий
Поделиться на других сайтах

.silent, огромное спасибо!

 

Хм, в продолжении темы: как бы заставить эту функцию вставлять текст в ту позицию, где сейчас курсор?

 

//me пошел осматривать JS, но если кто знает решение - буду рад услышать.

Ссылка на комментарий
Поделиться на других сайтах

в моем случае оно как раз и вставило текст в ту позицию, где находился курсор.

если пользуешься FireFox, то скачай плагин FireBug и в режиме Console набери этот пример и выполни, увидишь результат сам.

предварительно зайди, конечно, на страницу, где есть редактор.

Ссылка на комментарий
Поделиться на других сайтах

Я проверял в IE: добавлялось всегда в начало текста. Сейчас проверю еще раз, мало ли...

 

Странно, <a href="java script:ipsclass.add_editor_contents('test');">Test</a> - работает как надо, но убивает смайлы, а <a onClick="java script:ipsclass.add_editor_contents('test');">Test</a> вставляет в начало...

Ссылка на комментарий
Поделиться на других сайтах

А не подскажите, как мне на JS выяснить, включена ли расширенная форма ответа, или классическая, как здесь (в форме быстрого ответа)?
Ссылка на комментарий
Поделиться на других сайтах

А не подскажите, как мне на JS выяснить, включена ли расширенная форма ответа, или классическая, как здесь (в форме быстрого ответа)?

То есть RTE или STD?

Ссылка на комментарий
Поделиться на других сайтах

Нет, т.е. полный вариант, со смайликами (у меня он в форме быстрого ответа), или такой, как здесь в форме быстрого ответа. Просто для "урезанного" варианта формы ответа ipsclass.add_editor_contents('test'); не работает. А мне нужно обеспечить совместимость с двумя вариантами.

 

Я так понимаю, необходимо проверить существование функции ipsclass.add_editor_contents ? Но я не знаю, как это делается в JS =((

 

Проверил вот как:

if (document.REPLIER.id=="postingform") { //расширенная }

else { //стандартная }

 

Вроде все работает, как надо. Нормальный подход придумал, как считаете?

Ссылка на комментарий
Поделиться на других сайтах

Borland_delphi_6, чем не вариант воспользоваться:

try
{
ipsclass.add_editor_contents('тут то, что ты хочешь отправить');
}
catch(e)
{
// А это исключение, если функция выше не сработала.
// Тут ты можешь указать альтернативный способ передачи твоей информации
// или оставить область пустой - тогда ничего не будет выполняться.
}

?

Ссылка на комментарий
Поделиться на других сайтах

Вариант, наверное, неплохой, просто у меня опыт JS программинга отсутствует и я о существовании таких конструкций не подозревал даже. В конечно итоге остановился на своей реализации:

 

function ins(name)
{
my_show_div(my_getbyid('qr_open'));
if (document.REPLIER.id=="postingform")
 {
 ipsclass.add_editor_contents("[b]"+name+"[/b], ");
 }
else
{ 
if(document.REPLIER.Post)
  {
  var input=document.REPLIER.Post;input.value=input.value+"[b]"+name+"[/b], "
}
} 
}

 

sM1Le, .silent, огромное спасибо вам за помощь!

 

Правда, цитата почему-то все равно вставляется в начало поста. Вообще непонятно почему, если функция используется одна и та же... Не знаю уж, бороться с этим, или забить... Но если есть какие-то идеи, почему так - с радостью выслушаю.

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.