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



Не зарегистрирован
Зарегистрирован: 03.09.18
Репутация: 0
ссылка на сообщение  Отправлено: 03.09.18 15:45. Заголовок: Перестал работать скрипт


Добрый день. На форуме был прописан в настройках сприпт, скрывавший функцию "спасибо" в сообщениях (нам она не нужна, из-за неё идёт перекос дизайна). Всё скрывало исправно, а сейчас функция почему-то появилась вновь.

Скрипт стоит в HTML-низ:
<script>
if(work=='1'){
f=document.forms;
for(n=0;n<f.length;n++){
if(f[n].target=="spasibo"){
f[n].childNodes[1].childNodes[0].childNodes[0].childNodes[1].style.display="none";
}}}
</script>

Помогите, пожалуйста, исправить скрипт так, чтобы всё вновь заработало.

Форум: http://hpdestiny.forum24.ru/

Спасибо: 0 
Профиль Цитата Ответить
Ответов - 22 , стр: 1 2 All [только новые]


Модератор moder




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

Награды: За активное участие. О_о 17/01/19Помощь пользователям. 22/12/2019 О_о
ссылка на сообщение  Отправлено: 03.09.18 15:52. Заголовок: Вот эту строчку: if(..


Вот эту строчку:

 цитата:
if(f[n].target=="spasibo"){


Нужно заменить на эту:

 цитата:
if(f[n].target=="gw"){



Скрипт перестал скрывать "Спасибо", потому что поле target в форме, отвечающей за показ и отправку спасиб, теперь содержит значение "gw", а не "spasibo".

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



Сообщение: 1
Зарегистрирован: 03.09.18
Репутация: 1
ссылка на сообщение  Отправлено: 03.09.18 16:10. Заголовок: ТехнОкраТ Заменила...


ТехнОкраТ
Заменила. К сожалению "спасибо" из сообщений не пропало.

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




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

Награды: За активное участие. О_о 17/01/19Помощь пользователям. 22/12/2019 О_о
ссылка на сообщение  Отправлено: 03.09.18 16:20. Заголовок: Feelings Занятно. У..


Feelings
Занятно. У меня работает, а вроде бы всё то же.

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



Сообщение: 2
Зарегистрирован: 03.09.18
Репутация: 1
ссылка на сообщение  Отправлено: 03.09.18 16:32. Заголовок: ТехнОкраТ Засада :..


ТехнОкраТ
Засада и как тогда понять в чём проблема?

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




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

Награды: За активное участие. О_о 17/01/19Помощь пользователям. 22/12/2019 О_о
ссылка на сообщение  Отправлено: 03.09.18 16:34. Заголовок: Что если разместить ..


Обычно, скрипты, которые что-то меняют в разметке страницы после того, как она была загружена, лучше размещать после закрывающего </HTML> - тогда больше гарантий, что вся объектная модель документа будет доступна скрипту. Что если так и поступить - разместить скрипт после </HTML> в HTML-низу?

P.S.: Ещё меня смущает, что в HTML-верхе и HTML-низе в некоторых местах не хватает закрывающих </TD> и </TR> (перед <TR width=1000><TD valign=top> в HTML-верху и перед первым </table> в HTML-низу). А также прямо перед </BODY> стоят лишние </TD></TR></TABLE>.

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



Сообщение: 3
Зарегистрирован: 03.09.18
Репутация: 1
ссылка на сообщение  Отправлено: 03.09.18 16:45. Заголовок: ТехнОкраТ пишет: Об..


ТехнОкраТ пишет:

 цитата:
Обычно, скрипты, которые что-то меняют в разметке страницы после того, как она была загружена, лучше размещать после закрывающего </HTML> - тогда больше гарантий, что вся объектная модель документа будет доступна скрипту. Что если так и поступить - разместить скрипт после </HTML> в HTML-низу?

тогда скрипт будет и после </BODY>, хотя, как я поняла из местного раздела скриптов, они должны прописываться до. Тем не менее я попробовала - не помогло.
ТехнОкраТ пишет:

 цитата:
Ещё меня смущает, что в HTML-верхе и HTML-низе в некоторых местах не хватает закрывающих </TD> и </TR> (перед <TR width=1000><TD valign=top> в HTML-верху и перед первым </table> в HTML-низу).

От них зависит ширина таблицы форума. Если закрыть их в HTML-верхе, ширина разъезжается.

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



Сообщение: 4
Зарегистрирован: 03.09.18
Репутация: 1
ссылка на сообщение  Отправлено: 03.09.18 16:49. Заголовок: Самое нелепое, что б..


Самое нелепое, что буквально недавно всё работало прекрасно и исправно. Что сейчас-то вдруг стряслось, в настройки никто не лазил.

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




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

Награды: За активное участие. О_о 17/01/19Помощь пользователям. 22/12/2019 О_о
ссылка на сообщение  Отправлено: 03.09.18 16:52. Заголовок: Скопировал разметку ..


Скопировал разметку с форума к себе - скрипт всё ещё работает %) Что ж не так-то.

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



Сообщение: 5
Зарегистрирован: 03.09.18
Репутация: 1
ссылка на сообщение  Отправлено: 03.09.18 17:02. Заголовок: Скопировала этот код..


Скопировала этот скрипт на другой пробный форум с другим дизайном - там тоже не работает

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




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

Награды: За активное участие. О_о 17/01/19Помощь пользователям. 22/12/2019 О_о
ссылка на сообщение  Отправлено: 03.09.18 17:30. Заголовок: Отсутствие результат..


Отсутствие результата - это пока что тоже результат.
Мы выяснили, что браузер ни при чём (в одном и том же браузере на разных форумах скрипт и работает и не работает).
Разметка не виновата (потому что, опять же, на разных форумах скрипт и работает и не работает).

Давайте проверим, в какой момент скрипт перестаёт работать.

Разместите в самом низу HTML-верха:

 цитата:
<p id='iTest'>Здесь будет появляться цифра. 1 - значит, скрипт запускается. 2 - значит, выполняется проверка условия режима просмотра темы. 3 - значит, происходит перебор форм. 4 - значит, нужная форма найдена. 5 - значит, ячейка таблицы успешно скрыта.</p>



А скрипт в HTML-низу замените следующим:


 цитата:
<script>  
PiTest = document.getElementById('iTest');
PiTest.innerHTML = 1;
if(work=='1'){
PiTest.innerHTML = 2;
f=document.forms;
for(n=0;n<f.length;n++){
if(PiTest.innerHTML < 4) {PiTest.innerHTML = 3;}
if(f[n].target=="gw"){
PiTest.innerHTML = 4;
f[n].childNodes[1].childNodes[0].childNodes[0].childNodes[1].style.display="none";
PiTest.innerHTML = 5;
}
}
}
</script>



Зайдите на страницу http://hpdestiny.forum24.ru/?1-15-0-00000233-000-60-0#072.001 - и скажите, какую цифру нарисовал скрипт вверху форума под логотипом (и можно всё это дело возвращать, как было).

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



Сообщение: 6
Зарегистрирован: 03.09.18
Репутация: 1
ссылка на сообщение  Отправлено: 03.09.18 17:34. Заголовок: ТехнОкраТ По ссылке..


ТехнОкраТ
По ссылке нарисовал 4, на основной странице выдал 1

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




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

Награды: За активное участие. О_о 17/01/19Помощь пользователям. 22/12/2019 О_о
ссылка на сообщение  Отправлено: 03.09.18 17:36. Заголовок: Гостем вижу "4&#..


Отлично. Гостем тоже в теме вижу "4" - значит, не получается скрыть таблицу, т.е. сбоит вот эта строка:

 цитата:
       f[n].childNodes[1].childNodes[0].childNodes[0].childNodes[1].style.display="none";  


Как говорил лейтенант Пискунов: "Дело двинулось!" :)

Upd.: что если заменить эту строку на:

 цитата:
f[n].style.display="none";


Делает, по сути, то же самое, только скрывает всю форму спасиб.

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



Сообщение: 7
Зарегистрирован: 03.09.18
Репутация: 1
ссылка на сообщение  Отправлено: 03.09.18 17:46. Заголовок: ТехнОкраТ :sm15: з..


ТехнОкраТ
заработало! Спасибо вам огромное)

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




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

Награды: За активное участие. О_о 17/01/19Помощь пользователям. 22/12/2019 О_о
ссылка на сообщение  Отправлено: 03.09.18 17:46. Заголовок: Feelings :sm251: По..


Feelings

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



Сообщение: 8
Зарегистрирован: 03.09.18
Репутация: 1
ссылка на сообщение  Отправлено: 04.09.18 09:35. Заголовок: Вынуждена вернуться ..


Вынуждена вернуться к данной теме, так как с запозданием поняла, что скрипт скрыл не только «спасибо», но и все подписи целиком, а это в планы не входило

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




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

Награды: За активное участие. О_о 17/01/19Помощь пользователям. 22/12/2019 О_о
ссылка на сообщение  Отправлено: 04.09.18 13:56. Заголовок: И правда. Тогда дава..


И правда.
Тогда давайте будем переписывать эту злосчастную строку, пока не заработает. Почему-то вчера прямые ссылки на дочерние элементы узла формы приводили к сбою сценария (при этом консоль ошибок моих FireFox и PaleMoon предательски молчит).

Попробуйте так:

 цитата:
      f[n].lastChild.firstChild.firstChild.lastChild.style.display='none';  


Теперь строка делает то же самое, что и оригинальная, только вместо childNodes[1], ссылающегося на второй дочерний элемент, стоит lastChild, ссылающийся на последний (потому что в рассматриваемой цепочке элементов всего два, и второй будет последним :) ), а вместо childNodes[0] - firstChild, ссылающийся на первый.
У меня скрывает.

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



Сообщение: 9
Зарегистрирован: 03.09.18
Репутация: 1
ссылка на сообщение  Отправлено: 04.09.18 14:17. Заголовок: ТехнОкраТ Попробова..


ТехнОкраТ
Попробовала. Два разных форума с разными дизайнами упрямо не хотят скрывать "спасибо".(( Подписи вернулись.

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




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

Награды: За активное участие. О_о 17/01/19Помощь пользователям. 22/12/2019 О_о
ссылка на сообщение  Отправлено: 04.09.18 14:27. Заголовок: А так? f.lastC..


А так?

 цитата:
      f[n].lastChild.tBodies[0].rows[0].cells[1].style.display='none';


Теперь здесь уже ссылки на элементы таблицы, которой оформлена форма спасиб.

Кстати, можно ссылку на тестовый форум, на котором скрипт тоже отказывается скрывать спасибы?

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



Сообщение: 10
Зарегистрирован: 03.09.18
Репутация: 1
ссылка на сообщение  Отправлено: 04.09.18 14:53. Заголовок: ТехнОкраТ Упрямое с..


ТехнОкраТ
Упрямое спасибо видно и с этими правками скрипта(

Конечно: http://hpdestinyproba.unoforum.pro

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




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

Награды: За активное участие. О_о 17/01/19Помощь пользователям. 22/12/2019 О_о
ссылка на сообщение  Отправлено: 04.09.18 15:26. Заголовок: Экое колдунство. ht..


Экое колдунство.



Получается достучаться до коллекции tbody, вложенной в таблицу, положенную в форму. Дальше - нет. Причём, даже здесь, на ФТП.
Что же надо сделать мне на своём форуме, чтобы у меня тоже так стало не работать

Upd.: Давайте пойдём другим путём. Если не получается достучаться до части таблицы через форму, поищем её через ссылку "Спасибо: ", которая видна даже гостям.
Попробуйте заменить весь скрипт таким:


 цитата:
 
<script>
if(work=='1'){
f=document.getElementsByTagName('a');
for(n=0;n<f.length;n++){
if(f[n].getAttribute('href').indexOf('#msgid_t') == 0){
f[n].parentNode.style.display='none';
}
}
}
</script>



---
http://biathlet.borda.ru - Клуб любителей биатлона
I don't need luck - I got ammo! (c) Grunt, "Mass Effect 3"
Спасибо: 0 
Профиль Цитата Ответить
Ответов - 22 , стр: 1 2 All [только новые]
Ответ:
1 2 3 4 5 6 7 8 9
видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки оффтопик свернутый текст

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