|
Два нажатияОбсуждение темы Два нажатия в разделе ASP, Perl, PHP и MySQL, часть категории ВЕБ-ПРОГРАММИРОВАНИЕ; Как сделать в JS такую вещицу... При первом нажатии на ссылку в textarea вставлялось(допустим [ b ], при втором [/ b ]). Можно ... |
|
Опции темы |
11.05.2005, 20:13 | #1 |
|
Как сделать в JS такую вещицу... При первом нажатии на ссылку в textarea вставлялось(допустим [ b ], при втором [/ b ]). Можно такое вообще сделать?
|
|
12.05.2005, 07:09 | #2 |
|
Посмотри как это реализовано на этом форуме!
|
|
12.05.2005, 15:26 | #3 |
|
Silver, Просто мне это не очень нравится) Я видел это на Invision Power Board, в форме быстрого ответа от IgorekM. Дело в том что я в жаве ни бум бум) Понимаю её только образно. А самому что-то написать...
Ну ладно, обойдусь какнить без этого если никто не ответит... |
|
29.05.2005, 00:30 | #4 |
|
Вариант номер раз (очень просто) - делаем триггер:
var zzz=0; function addBandB(){ if (zzz ==0){ zzz=1; document.formname.textareaname.value=document.form name.textareaname.value+'[ b ]'; }else{ zzz=0; document.formname.textareaname.value=document.form name.textareaname.value+'[ /b ]'; } } Вот теперь при нажатии 1 будет вставлено [b], при нажатии 2 вставлено [ /b ], при нажатии 3, снова вставлено [ b ] и так далее. Пояснять алгоритм не буду, если знаешь что делает IF то сам поймёш. Это правда самый простой вариант, по хорошему надо парсить содержимое текстареи и считать [ b ], на каждый [ b ] подтавлять в конец свой [ /b ]. |
|
29.05.2005, 00:56 | #5 | |
|
Цитата:
|
|
|
30.05.2005, 14:11 | #6 |
|
Спасибо) Будем пробовать)
|
|
01.06.2005, 06:31 | #7 |
|
Уважаемый Мастер seka,
Вот вы по ошибке написали: ------------------------------------ Это чушь. Ты подумай: есть ОДНА кнопка. Как программе определить, что ты хочешь сделать, нажимая на неё: закрыть уже открытый тэг, или открыть ещё один? Одной кнопкой это невозможно, так что тут лучше обойтись этим вот твоим простым способом. ------------------------------------ Задавать вопрос о том, как Вас, уважаемый Мастер seka земля носит, не стану, пусть это сделают те, кто стал вашими клиентами (у вас в подписи вроде какая-то студия фигурирует)... Красноречивее за меня скажет исходник обработчика нажатия на кнопку, который сам знает - что надо делать ОТКРЫВАТЬ ТЕГ или ЗАКРЫВАТЬ (и только представьте, я не применил никакой магии и эвристического анализа!): Код:
<HTML><HEAD> <script language=JavaScript><!-- function nepowadno_chto_by_bylo_goworit_bred(){ var test_text=document.test.info.value; var test_text_out=''; var openclose=0; var nopenclose=0; var bopenclose=0; for (n=0; n < test_text.length; n++){ nt1=test_text.substring(n, n+1); if (nt1 == '('){ if ((test_text.substring(n+1, n+2) == 'B' || test_text.substring(n+1, n+2) =='b') && test_text.substring(n+2, n+3) == ')'){ if (bopenclose > 3 && openclose >0){nt1=''; n=n+2} // не даём вложить (b) в (b) nopenclose=-1; openclose=1; }else{ if (test_text.substring(n+1, n+2) == '/' && (test_text.substring(n+2, n+3) == 'B' || test_text.substring(n+2, n+3) =='b') && test_text.substring(n+3, n+4) == ')'){ if (nopenclose > 2 && openclose < 1){nt1=''; n=n+3} // не даём вписать (/b) ранее (b) bopenclose=-1; openclose=0; } }} // if (nt1 == '(') nopenclose++; bopenclose++; test_text_out=test_text_out+nt1; } // for (n=0; n < test_text.length; n++) // закрываем (/b) если на выходе не всё закрыто или открываем новое, если всё закрыто // причём учитываем, что если в конце у нас открыто но ничего не написано, то убрать открытие, а если написано, то закрыть if (openclose > 0){if (nopenclose > 2){test_text_out=test_text_out+'(/b)';}else{test_text_out=test_text_out.substring(0, test_text_out.length-3);}}else{if (bopenclose > 3){test_text_out=test_text_out+'(b)';}} document.test.info.value=test_text_out; } //--></script> </head> <BODY> <form name=test onSubmit="nepowadno_chto_by_bylo_goworit_bred(); return false;"> <textarea name=info rows=5 cols=50>наша (b)маша (b)громко(/b) плачет</textarea> <input type=submit value="Доказать"> </form> </body></html> Не претендую на особую элегантность кода, писал в реалтайме, на скоряк, даже не проверял, но должно работать. Ребята, прекращайте юзать модули, готовые процедуры, гонять друг друга скомуниздить чужой код... ЭТО СУШИТ МОЗГИ! Пишите всё сами, с нуля... Пусть это дольще. В программировании нет ничего невозможного. P.S. Если здесь открыто рекламят студии в подпиях, то порекламлю что ни будь и я: Иллюстрированный каталог сайтов P.P.S. Требую что бы меня тоже называли мастер! Чем я хуже йоды? P.P.P.S. Если кому интересны мои услуги как программиста, знайте - я их не оказываю, у меня лицензии нет |
|
01.06.2005, 13:13 | #8 |
|
KB200, всё равно не то. Я так и не увидел то, чего ожидал.
Этот скрипт даже хуже предыдущего, поскольку порой не знаешь, чего от него ожидать. "надо парсить содержимое текстареи и считать [ b ], на каждый [ b ] подтавлять в конец свой [ /b ]." вот эта фраза и вот эта строчка if (bopenclose > 3 && openclose >0){nt1=''; n=n+2} // не даём вложить (b) в (b) противоречат друг другу. |
|
01.06.2005, 14:41 | #9 |
|
А зачем вкладывать [b] в [b]?
|
|
01.06.2005, 16:31 | #10 | |
|
так в том то и дело!
Цитата:
|
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Кнопка после нажатия | AtisYar | Библиотека | 3 | 29.07.2009 06:43 |
Как описать на AS действие после нажатия на мувиклип не в корне | artogap | Технологии Flash | 10 | 03.12.2008 19:17 |
Реклама на форуме
Условия размещения рекламы
Биржа ссылок
Заработай на сайте!
|