On-line: гостей 1. Всего: 1 [подробнее..]
АвторСообщение
Модератор moder




Сообщение: 6574
Зарегистрирован: 08.10.05
Откуда: РФ, Лаборатория
Репутация: 485

Награды: За активное участие. О_о 17/01/19Помощь пользователям. 22/12/2019 О_о
ссылка на сообщение  Отправлено: 30.11.19 16:32. Заголовок: Модификация тега MORE: разворачивать только свой текст, а не все в сообщении


Если в сообщении много тегов more, то при попытке открыть какой-то один открываются все. Так происходит из-за того, что все скрываемые тегами more элементы помещаются в таблицы с одним и тем же id в пределах конкретного сообщения. Нажатие по ссылке "Скрытый текст" запускает функцию tabviz из библиотеки gb_forum.js и передаёт ей в качестве параметра id соответствующей таблицы. Функция tabviz ищет все таблицы с этим id, находит их и в зависимости от ситуации скрывает или показывает их.

Со стороны пользователя может наблюдаться неудобство: при нажатии на один из "Скрытых текстов" в сообщении разворачиваются все "Скрытые тексты", из-за чего то, на что смотрел пользователь только что, может оказаться уже в другом месте страницы. Это затрудняет восприятие.

Варианты выхода:
1. Со стороны сервера - давать каждому следующему more в сообщении новый id.
2. Со стороны админов форумов - добавить скрипт, который, по сути, будет делать то же самое: искать ссылки "Скрытый текст" и соответствующие им таблицы, и менять в них id, чтобы были разными в пределах одного сообщения.

Первый вариант предпочтительнее, но пока его нет, можно воспользоваться вторым.
Скрипт добавляется в HTML-низ после </HTML>

 
<!-- Модификация к тегу MORE: Начало -->
<!-- Чтобы разворачивался тыкнутый Скрытый текст, а не все сразу -->
<script>
// регулярное выражение, ищущее отличительную черту ссылки "Скрытый текст" -
// это значение параметра href равное 'javascript:tabviz(X);' , где Х - цифры
var tabvizstr = /tabviz\(([0-9]+)\);/i;

aArray = document.getElementsByTagName('a');
for (m=1; m<aArray.length; m++){
aCurr = aArray[m];
strMatch = tabvizstr.exec(aCurr.getAttribute('href'));
if(strMatch != null){
MoreTagOldId = strMatch[1];
MoreTagNewId = strMatch[1]+m;
tableCurr = aCurr.nextSibling.nextSibling;
if (tableCurr.getAttribute('id') == MoreTagOldId) {
aCurr.setAttribute('href', 'javascript:tabviz('+MoreTagNewId+');');
tableCurr.setAttribute('id', MoreTagNewId);
}
}
}
</script>
<!-- Модификация к тегу MORE: Конец -->


---
http://biathlet.borda.ru - Клуб любителей биатлона
I don't need luck - I got ammo! (c) Grunt, "Mass Effect 3"
Спасибо: 2 
Профиль Цитата Ответить
Ответов - 2 [только новые]


администратор




Сообщение: 202
Зарегистрирован: 21.08.18
Репутация: 7
ссылка на сообщение  Отправлено: 25.01.20 16:38. Заголовок: test test1 test2..

Спасибо: 1 
Профиль Цитата Ответить
администратор




Сообщение: 205
Зарегистрирован: 21.08.18
Репутация: 7
ссылка на сообщение  Отправлено: 25.01.20 18:36. Заголовок: ИМХО, это скорее баг..


ИМХО, это скорее баг, чем фича. Поправил.

Спасибо: 0 
Профиль Цитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 16
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет