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




Зарегистрирован: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 [только новые]


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




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

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




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


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

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

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