€
$
₴
₽
EN
RU
Vmeste.EU
Лента
Каталог
Файлы
Форумы
Услуги
Основное
Radiotalk
Пользовательское
MPCHAT - CMS хостинг чатов для профессионалов
90 •
Посмотреть все темы
Цитата с новой строки
1
1163
Денис
@Анатолич
27.12.2012
Уважаемые знатоки Яваскрипта. Хотел задать вопрос по форуму, галерее и гостевой.
Как сделать, чтобы при клике на "Цитировать" В поле для ввода текста, курсор находился не перед цитатой, А под цитатой, На новой строчке?
Если такое конечно возможно.
А если не возможно, то как вариант, чтобы его не было совсем. не так удобно. Но хотя бы не начнешь вбивать текст перед цитатой.
2615
Сергей
@Pegass
27.12.2012
function setcursor(obj, pos)
{
if(obj.setSelectionRange)
{
obj.focus();
obj.setSelectionRange(pos,pos);
}
else if (obj.createTextRange) {
var range = obj.createTextRange();
range.collapse(true);
range.moveEnd('character', pos);
range.moveStart('character', pos);
range.select();
}
}
дальше писать не готов ибо кода форума под рукой нет
Отредактировано Pegass -
27.12.2012
1163
Денис
@Анатолич
27.12.2012
Pegass
, Так и не разобрался я куда эту функцию вставлять. А главное в каком месте обращаться. Если будет время может подскажешь для "чайников".
2615
Сергей
@Pegass
28.12.2012
Воткнул себе на форум - шикарно работает
function setcursor(obj, pos)
{
if(obj.setSelectionRange)
//Хороший браузер
{
obj.focus();
obj.setSelectionRange(pos,pos);
}
else if (obj.createTextRange)
// плохой IE
{
var range = obj.createTextRange();
range.collapse(true);
range.moveEnd('character', pos);
range.moveStart('character', pos);
range.select();
}
obj.scrollTop=9999;
//проскроллить textarea вниз
}
function quote(num)
{
a1=new Array('<br>','"',''','|','<','>','\','`','&');
a2=new Array('\r\n','"',"'",'|','<','>','\\','`','&');
nick=f_p[num][1];
txt=f_p[num][2];
for(i=0;i<a1.length;i++) txt=txt.split(a1[i]).join(a2[i]);
put("[qu ote="+nick.replace(/\]/g,"]")+"]"+txt+"[/qu ote]");
//В ЭТОЙ СТРОКЕ НУЖНО УБРАТЬ ПРОБЕЛЫ
setcursor(document.form.message, document.form.message.value.length);
}
Отредактировано Pegass -
28.12.2012
596
Сергей
@Князь_Пипецкий
28.12.2012
Странный эффект....
Когда ставлю
function quote(num)
{
a1=new Array('<br>','"',''','|','<','>','\','`','&');
a2=new Array('\r\n','"',"'",'|','<','>','\\','`','&');
nick=f_p[num][1];
txt=f_p[num][2];
for(i=0;i<a1.length;i++) txt=txt.split(a1[i]).join(a2[i]);
put("[qu ote="+nick.replace(/\]/g,"]")+"]"+txt+"[/qu ote]");//В ЭТОЙ СТРОКЕ НУЖНО УБРАТЬ ПРОБЕЛЫ
setcursor(document.form.message, document.form.message.value.length);
}
вместо той function quote(num) что в исходном варианте форума - то доступна только текстовая версия форума.
2615
Сергей
@Pegass
28.12.2012
Князь_Пипецкий
, а ты не заменяй всю функцию а только добавь синее
596
Сергей
@Князь_Пипецкий
28.12.2012
Pegass
пишет:
Князь_Пипецкий
, а ты не заменяй всю функцию а только добавь синее
Да! Так работает!
Полезная штука 😀 пусть не очень заметная, но удобная.
Спасибо!
1163
Денис
@Анатолич
29.12.2012
Pegass
, отлично все работает, спасибо. курсор теперь после текста цитаты. Но было бы еще лучше если бы он оказался
под
текстом. Такое реализовать невозможно?
а то кто нибудь пробел или энтр не нажмет и получится фигня.
Хотя с пробелом вопрос сам решил. Добавил его после закрывающего тега /quote
put("[quote="+nick.replace(/\]/g,"]")+"]"+txt+"[/quote]
");
Отредактировано Анатолич -
29.12.2012
2615
Сергей
@Pegass
29.12.2012
попробуй вместо этого пробела написать
\n\r
Отредактировано Pegass -
29.12.2012
1007
BETEPAH
@BETEPAH
29.12.2012
Анатолич
пишет:
Pegass
, отлично все работает, спасибо. курсор теперь после текста цитаты. Но было бы еще лучше если бы он оказался
под
текстом. Такое реализовать невозможно?
а то кто нибудь пробел или энтр не нажмет и получится фигня.
Хотя с пробелом вопрос сам решил. Добавил его после закрывающего тега /quote
put("[quote="+nick.replace(/\]/g,"]")+"]"+txt+"[/quote]
");
Почему фигня? Цитаты же оформляются с помощью div'а и текст после нее будет в любом случае с новой строки, независимо от того нажмет энтер или нет.
1163
Денис
@Анатолич
29.12.2012
BETEPAH
, Ваша правда. и правда все работает и без пробела и без энтр. Почему то подумал, что по аналогии со смайлами без пробела не получится.
Конечно с новой строчки визуально печатать немного удобнее. Но это уже несущественные мелочи.