Цитирование на форуме.
Добрый день коллеги!
Пытаюсь модернизировать механизм цитирования на форуме. Сейчас цитирование делается так: при выделении мышкой текста и нажатии на кнопку "Цитировать" в окне сообщения появляется выделенный текст в тегах цитаты. Нужно сделать так, чтобы если текст не выделен, в теги вставлялось все сообщение целиком, а не пустое место как сейчас. Во многих форумах это реализовано. На взгляд всё очень просто. Но немного не хватет опыта для реализации. Пока не выходит. Может есть у кого-нибудь опыт в решении подобных задачек? Буду благодарен за любую инфу! Строка с ссылкой "Цитировать": <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, время: 11:03. |