Цитирование на форуме.
Добрый день коллеги!
Пытаюсь модернизировать механизм цитирования на форуме. Сейчас цитирование делается так: при выделении мышкой текста и нажатии на кнопку "Цитировать" в окне сообщения появляется выделенный текст в тегах цитаты. Нужно сделать так, чтобы если текст не выделен, в теги вставлялось все сообщение целиком, а не пустое место как сейчас. Во многих форумах это реализовано. На взгляд всё очень просто. Но немного не хватет опыта для реализации. Пока не выходит. Может есть у кого-нибудь опыт в решении подобных задачек? Буду благодарен за любую инфу! Строка с ссылкой "Цитировать":
<a class=\"d3\" onmouseover=\"copyQN('".$pdata['p_uname']."','p".$pdata['p_id']."');\" href=\"javascript:pasteQ();\" ><span class=\"descr3\">"Цитировать"</a>");
в обработке сообщения принимают участие 2 ф-ции: copyQN и pasteQ();
function copyQN(name,id) {
txt='';
lname=name;
if (document.getSelection) {txt=document.getSelection()}
else if (document.selection) {txt=document.selection.createRange().text;}
if (document.getElementById && !txt && document.getElementById(id).innerText) {txt=document.getElementById(id).innerText;}
else if (document.getElementById && !txt && document.getElementById(id).textContent) {txt=document.getElementById(id).textContent;}
txt='[q='+name+']'+txt+'[/q]\n';
}
function copyQ() {
txt=''
if (document.getSelection) {txt=document.getSelection()}
else if (document.selection) {txt=document.selection.createRange().text;}
txt='[q]'+txt+'[/q]\n';
}
function pasteQ() {
if (txt!='') insertText(document.postform.p_text,txt);
}
|
Замени !txt в условиях функции copyQN() на txt=='', думаю поможет.
И document.getElementById в условиях наверное лишнее, убери его. В итоге: if ( if ( А если нет, то выложи html блока с постом. |
Огроменное спасибо! Всё заработало! Снимаю шляпу! :thanks:
|
Цитата:
Т. е. нужно написать условие: if ((txt.length) > 300) {txt=txt.substring(0,300)+'...';} Как то так? |
Да, txt.length в условии не обязательно в скобки брать и если после if() следует только одно выражение, то можно фигурные скобки не ставить.
if(txt.length > 300) txt = txt.substring(0,300) + '...'; |
Ещё раз благодарю. Написал условие как в ПХП и всё заработало!
|
А для чего в строке все заэкранировано?
|
| Часовой пояс GMT +3, время: 20:10. |