BB-code выделение оффтопа на форуме
|
|
DeTM | Дата: 19 Мая 2007, 20:56 | Сообщение # 61 | ● ● ● ● ● 46 сообщений Статус: Offline | Нашел ошибку. В моем шаблоне <TD> , отвечающий за хранение опста имел класс 'posttdMessage'Добавлено (2007-05-19, 20:56) ---------------------------------------------
Quote | <script> Nn=19; elem=document.all.off; obj=document.addform.i.parentNode; obj.insertBefore(elem, obj.childNodes[Nn]); var newText = document.createTextNode(unescape('%A0')); obj.insertBefore(newText, obj.childNodes[Nn]); </script> | Арагорн, можно плиз каждую строку откоментить..не понимаю по какому принципу Nn брал | | |
|
Арогорн | Дата: 19 Мая 2007, 23:35 | Сообщение # 62 | ● ● ● ● ● 419 сообщений Статус: Offline | DeTM, Nn - порядковый номер расположения кнопки, нечетные числа нужно брать. | | |
|
DeTM | Дата: 19 Мая 2007, 23:53 | Сообщение # 63 | ● ● ● ● ● 46 сообщений Статус: Offline | Т.е. дальше 21 итд ? Ограничение есть? | | |
|
Арогорн | Дата: 20 Мая 2007, 10:16 | Сообщение # 64 | ● ● ● ● ● 419 сообщений Статус: Offline | DeTM, ставб по порядку и ограничений быть не должно | | |
|
DeTM | Отредактировал DeTM - Воскресенье, 20 Мая 2007, 12:00 Дата: 20 Мая 2007, 11:58 | Сообщение # 65 | ● ● ● ● ● 46 сообщений Статус: Offline | Арогорн, я нашел жесткий минус в коде и знаю как его попроавить вот как надо: Code |
<script> e=document.getElementsByTagName("TD"); for(k=15; k<e.length;k++) { if(e[k].className=='posttdMessage') { s=e[k].innerHTML; while(s.indexOf('[off]')!=-1){ s=s.replace('[off]','<br><br><table><tr><td><a style="cursor:hand" onClick="expandit(this)">OffTopic</a></td></tr><tr style="display:none" style=&{head};><td><p align="center">'); s=s.replace('[/off]','</p></td></tr></table>'); e[k].innerHTML=s; } } } </script>
| Добавлено (2007-05-20, 11:58) --------------------------------------------- Просто твой вариант обрабатывал только 1 тег, а вопсте могло быть например 5 оффтопоф. Аналогично с hide'ом и оостальными обработчиками бб-кодов. Кстати также совет: помещать обработчик бб-кодов в файл и тут просто его подключать. + ннеоптимизированно обработка каждого бб-кода в свой цикле и блоке скрипта, там можно объединить в одно, понимашь? | | |
|
Арогорн | Дата: 20 Мая 2007, 20:41 | Сообщение # 66 | ● ● ● ● ● 419 сообщений Статус: Offline | Quote (DeTM) | жесткий минус | хорошо подметил Quote (DeTM) | помещать обработчик бб-кодов в файл и тут просто его подключать | это ньюансы | | |
|
DeTM | Дата: 20 Мая 2007, 20:48 | Сообщение # 67 | ● ● ● ● ● 46 сообщений Статус: Offline | Блин..я щаз ытаюсь сделатиь как ясказал : не выходит...че то с indexOf() не то :(:( о результатах -напишу Добавлено (2007-05-20, 20:48) --------------------------------------------- Мой вариант подошел,прошу прощения, кого смутил | | |
|
theWurm | Дата: 20 Мая 2007, 22:41 | Сообщение # 68 | ● ● ● ● ● 20 сообщений Статус: Offline | DeTM, напиши плиззз полностью код который надо вставить...а то тут уже все позапутывались что рабочее а что нет... | | |
|
Dinamo | Дата: 21 Мая 2007, 10:06 | Сообщение # 69 | ● ● ● ● ● 28 сообщений Статус: Offline | Не работает!!! | | |
|
Арогорн | Дата: 21 Мая 2007, 10:50 | Сообщение # 70 | ● ● ● ● ● 419 сообщений Статус: Offline | Quote | if(e[k].className=='posttdmessage') | перед тем как говорить, что не работает нужно проверить соответствуют ли классы Quote (theWurm) | что рабочее а что нет | вообщем-то, рабочие все кода в этой теме ЭТО можно назвать последним обновлением | | |
|
Serious | Дата: 21 Мая 2007, 12:14 | Сообщение # 71 | ● ● ● ● ● 112 сообщений Статус: Offline | Как не банально, но ошибка в этом: Quote | if(e[k].className=='posttdmessage') | Правильно: Quote | if(e[k].className=='posttdMessage') |
| | |
|
DeTM | Дата: 21 Мая 2007, 13:14 | Сообщение # 72 | ● ● ● ● ● 46 сообщений Статус: Offline | Serious, Я когда первый рас заорал что не пашет на тоше самое наткнулсо | | |
|
Serious | Дата: 21 Мая 2007, 14:46 | Сообщение # 73 | ● ● ● ● ● 112 сообщений Статус: Offline | Есть еще один небольшой глючок. Если использовать в тексте код скрытого текста и нажать кнопку "посмотреть", то он там не обрабатывается. С off тоже самое, но это неважно | | |
|
WolfClan | Дата: 21 Мая 2007, 15:11 | Сообщение # 74 | ● ● ● ● ● 404 сообщения Статус: Offline | В Mozilla нек работает - остальное пашет | | |
|
Арогорн | Дата: 21 Мая 2007, 17:38 | Сообщение # 75 | ● ● ● ● ● 419 сообщений Статус: Offline | собственно Андре еще в 14-ом сообщении сказал, что нужно проверить класс | | |
|
WolfClan | Дата: 21 Мая 2007, 20:57 | Сообщение # 76 | ● ● ● ● ● 404 сообщения Статус: Offline | Я класс менял Теперь пользователи мне не рады, что я объявил что можно, и теперь нельзя - ибо у меня на браузере не работает | | |
|
Арогорн | Дата: 22 Мая 2007, 09:25 | Сообщение # 77 | ● ● ● ● ● 419 сообщений Статус: Offline | Quote (WolfClan) | ибо у меня на браузере не работает | что именно, в Лисе не работает оффтоп - он не раскрывается, но эт потому что "скрывалка" сделанна под ИЕ, надо переписать кк-нить потом будет... | | |
|
WolfClan | Дата: 22 Мая 2007, 17:38 | Сообщение # 78 | ● ● ● ● ● 404 сообщения Статус: Offline | Арогорн, Не умею я, я могу только справить что мне нужно, прочитать и понять смысл написанного скрипта. На большее в свои то 14 нимагу | | |
|
Owen | Отредактировал Owen - Пятница, 01 Июня 2007, 18:05 Дата: 01 Июня 2007, 18:02 | Сообщение # 79 | ● ● ● ● ● 2 сообщения Статус: Offline | У меня что-то не получилось, подскажите. Между какими head /head ставить? | | |
|
kydapodatsya | Дата: 01 Июня 2007, 18:27 | Сообщение # 80 | ● ● ● ● ● Дизайнер 2557 сообщений Статус: Offline | Quote (Owen) | Между какими head /head ставить? | единственным смотри вверху кода страницы | | |
|