Svarga
Moderator | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору тут что-то начинали обсуждать: http://forum.ru-board.com/topic.cgi?forum=13&topic=0634&start=20 но все как-то и остановилось. 1. Что есть: яваскрипт-функция explorer-only pasteQ(), которая вызывается посредством VBScript, что гарантирует то, что будет отрабатываться только для эксплорера: Код: function pasteQ(text){ if (text !="") document.postform.post.value = document.postform.post.value + "[q]" + text + "[/q]\n"; } | и на страницах Код: <SCRIPT language=JavaScript> if (navigator.appVersion.indexOf("MSIE")!= -1) {document.writeln("<a class=tpc title='Для вставки цитаты в форму ответа, выделите ее, и нажмите сюда' href='VBScript:pasteQ(document.selection.createRange().Text)'>Цитировать</a>")} else {document.writeln("<span class=tpc>Цитировать</span>")} </SCRIPT> | 2. Что предлагаю: - сделать вставку цитаты возможной тж в нетскейпах 4.0-7.0, Мозилле; - во всем остальном, поддерживающем JavaScript добавить возможность вставки "[q][/q]", чтоб лишний раз не переключать раскладку, когда хочешь кого-то процитировать под операми и тп. 3. Как это сделать: используем JavaScript. при наведении на ссылку "Цитировать" вызываем функцию копирования выделенного текста, при нажатии на ссылку вставляем текст. т.е. ссылка приобретет вид: <a class=tpc title='Для вставки цитаты в форму ответа, выделите ее, и нажмите сюда' onmouseover="copyQ();" href="javascript:pasteQ();">Цитировать</a> для проверки необходимости вывода текста "Для вставки цитаты, выделите её и нажмите эту ссылку." возле textarea воспользоваться проверкой поддержки возможности копировать выделенный текст: if (document.selection||document.getSelection) {Q=true} else {var Q=false} и на странице: <script language=JavaScript>if (Q) document.writeln('Для вставки цитаты, выделите её и <a onmouseover="copyQ();" href="javascript:pasteQ();">нажмите эту ссылку</a>.') </script> код необходимых функций: Код: var txt='' function copyQ() { txt='' if (document.getSelection) {txt=document.getSelection()} else if (document.selection) {txt=document.selection.createRange().text;} txt='[q]'+txt+'[/q]'} function pasteQ() { document.postform.post.value=document.postform.post.value+txt; } if (document.selection||document.getSelection) {Q=true} else {var Q=false} | проверено на работоспособность: --вставляет выделенное в: - Opera 7.0 beta (слава великому Кobold'у, что сообщил)
- netscape 4.0-7.0,
- msie 5.0-6.0 (должно работать тж в 4.0),
- mozilla 1.0,
- hotjava 3.0, только кому она нужна
--вставляет просто "[q][/q]" в: - opera 3.51-6.05,
- msie 3.0
--netscape 2.0-- ругается, но это уж слишком антикварный зверь, netscape 3.0-- не поддерживает вынесение скриптов в отдельный файл. в действии можно посмотреть на http://svarga.pisem.net/ru-board/pasteQ/topic.html (уж извините, коды счетчиков и баннеров убрал;) ) | Всего записей: 4161 | Зарегистр. 25-06-2002 | Отправлено: 03:22 13-11-2002 | Исправлено: Svarga, 02:52 15-11-2002 |
|