Ваш e-mail и адрес вашего форума обязательно должны быть в сообщении или в автоподписи, если Вам нужна помощь или совет. Если Ваше сообщение удалили или не добавили в форум - значит ответ подробно расписан в инструкции администратора. Задавать подобные вопросы категорически запрещено! После регистрации желательно указать ссылку на ваш форум в вашем профиле и в автоподписи [Закрыть правила]
Не зарегистрирован
Зарегистрирован: 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>
Помогите, пожалуйста, исправить скрипт так, чтобы всё вновь заработало.
Сообщение: 6495
Зарегистрирован: 08.10.05
Откуда: РФ, Лаборатория
Репутация:
127
Награды:
Отправлено: 03.09.18 15:52. Заголовок: Вот эту строчку: if(..
Вот эту строчку:
цитата:
if(f[n].target=="spasibo"){
Нужно заменить на эту:
цитата:
if(f[n].target=="gw"){
Скрипт перестал скрывать "Спасибо", потому что поле target в форме, отвечающей за показ и отправку спасиб, теперь содержит значение "gw", а не "spasibo".
Сообщение: 6498
Зарегистрирован: 08.10.05
Откуда: РФ, Лаборатория
Репутация:
127
Награды:
Отправлено: 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>.
Обычно, скрипты, которые что-то меняют в разметке страницы после того, как она была загружена, лучше размещать после закрывающего </HTML> - тогда больше гарантий, что вся объектная модель документа будет доступна скрипту. Что если так и поступить - разместить скрипт после </HTML> в HTML-низу?
тогда скрипт будет и после </BODY>, хотя, как я поняла из местного раздела скриптов, они должны прописываться до. Тем не менее я попробовала - не помогло. ТехнОкраТ пишет:
цитата:
Ещё меня смущает, что в HTML-верхе и HTML-низе в некоторых местах не хватает закрывающих </TD> и </TR> (перед <TR width=1000><TD valign=top> в HTML-верху и перед первым </table> в HTML-низу).
От них зависит ширина таблицы форума. Если закрыть их в HTML-верхе, ширина разъезжается.
Сообщение: 6502
Зарегистрирован: 08.10.05
Откуда: РФ, Лаборатория
Репутация:
127
Награды:
Отправлено: 03.09.18 17:30. Заголовок: Отсутствие результат..
Отсутствие результата - это пока что тоже результат. Мы выяснили, что браузер ни при чём (в одном и том же браузере на разных форумах скрипт и работает и не работает). Разметка не виновата (потому что, опять же, на разных форумах скрипт и работает и не работает).
Давайте проверим, в какой момент скрипт перестаёт работать.
Разместите в самом низу HTML-верха:
цитата:
<p id='iTest'>Здесь будет появляться цифра. 1 - значит, скрипт запускается. 2 - значит, выполняется проверка условия режима просмотра темы. 3 - значит, происходит перебор форм. 4 - значит, нужная форма найдена. 5 - значит, ячейка таблицы успешно скрыта.</p>
Отправлено: 04.09.18 09:35. Заголовок: Вынуждена вернуться ..
Вынуждена вернуться к данной теме, так как с запозданием поняла, что скрипт скрыл не только «спасибо», но и все подписи целиком, а это в планы не входило
Сообщение: 6507
Зарегистрирован: 08.10.05
Откуда: РФ, Лаборатория
Репутация:
127
Награды:
Отправлено: 04.09.18 13:56. Заголовок: И правда. Тогда дава..
И правда. Тогда давайте будем переписывать эту злосчастную строку, пока не заработает. Почему-то вчера прямые ссылки на дочерние элементы узла формы приводили к сбою сценария (при этом консоль ошибок моих FireFox и PaleMoon предательски молчит).
Теперь строка делает то же самое, что и оригинальная, только вместо childNodes[1], ссылающегося на второй дочерний элемент, стоит lastChild, ссылающийся на последний (потому что в рассматриваемой цепочке элементов всего два, и второй будет последним :) ), а вместо childNodes[0] - firstChild, ссылающийся на первый. У меня скрывает.
Получается достучаться до коллекции tbody, вложенной в таблицу, положенную в форму. Дальше - нет. Причём, даже здесь, на ФТП. Что же надо сделать мне на своём форуме, чтобы у меня тоже так стало не работать
Upd.: Давайте пойдём другим путём. Если не получается достучаться до части таблицы через форму, поищем её через ссылку "Спасибо: ", которая видна даже гостям. Попробуйте заменить весь скрипт таким:
Все даты в формате GMT
3 час. Хитов сегодня: 36
Права: смайлы да, картинки да, шрифты нет, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет