Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
6 / 6 / 0
Регистрация: 25.01.2021
Сообщений: 203
1

Как обработать ошибки

18.02.2023, 18:28. Показов 729. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как исключить ошибку когда элемент не присутствует на странице ?
есть кнопка и для нее действие
Javascript
1
2
3
document.getElementById('block').onclick = function() {
//действие кнопки
}
когда кнопки нет на странице то в консоли появляется ошибка:

Код
script.js:57 Uncaught TypeError: Cannot set properties of null (setting 'onclick')
    at
как обработать ошибку когда кнопки нет ?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.02.2023, 18:28
Ответы с готовыми решениями:

Как правильно обработать ошибки?
Есть такое задание: Написать функцию getRepeatableData, котрая принимает на вход три параметра: ...

NamedPipeServerStream. Как обработать ошибки
Добрый вечер. Наткнулся на такую проблему, никак не могу победить. Пишу системную службу,...

Как обработать ошибки в DataBinder?
Можно ли как-то обработать ошибку внутри вот такого выражения? <asp:LinkButton id=lnkWWeapon...

Как обработать ошибки не вызывающие ErrorDocument
При обращении к несуществующему файлу, появляется страница ошибки. Но, если несуществующий файл,...

8
Философ-разговорник
1066 / 391 / 120
Регистрация: 20.02.2016
Сообщений: 884
Записей в блоге: 1
18.02.2023, 18:50 2
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <title></title>
    <style>
    </style>
  </head>
  <body>    
    <script>
      /* нет ошибки, несмотря на отсутствие элемента */
    document.getElementById('block')?.addEventListener( 'click', function() {
     alert('действие кнопки 1');
    });
   </script>
   <input type="button" id="block" value="Block" />
   <script>
    document.getElementById('block').addEventListener( 'click', function() {
     alert('действие кнопки 2');
    });
    </script>
  </body>
</html>
1
3498 / 1262 / 428
Регистрация: 24.07.2016
Сообщений: 1,887
18.02.2023, 19:29 3
Цитата Сообщение от nikolaymsk01 Посмотреть сообщение
как обработать ошибку когда кнопки нет ?
Javascript
1
2
3
4
5
6
7
8
try {
    document.getElementById('block').onclick = function() {
        console.log('Привет');
    }
} catch (err) {
    console.log('Кнопки нет. Можно ошибку вывести, если нужно: ' + err);
    console.log('... или вообще ничего не делать');
}
0
Эксперт JS
3499 / 1336 / 368
Регистрация: 14.03.2022
Сообщений: 3,210
18.02.2023, 21:37 4
Лучший ответ Сообщение было отмечено nikolaymsk01 как решение

Решение

Цитата Сообщение от nikolaymsk01 Посмотреть сообщение
Как исключить ошибку когда элемент не присутствует на странице ?
Как вариант...

Javascript
1
2
3
4
const o = document.getElementById('block')
if (o) o.addEventListener('cnclick', function() {
   //действие кнопки
})
1
1306 / 781 / 190
Регистрация: 19.09.2020
Сообщений: 1,993
19.02.2023, 00:16 5
nikolaymsk01, использовать addEventListener и проверку, как выше указал krvsa.

Но можно и обфуркацию небольшую в олдскульном стиле

Javascript
1
2
3
4
5
6
((e) =>
  e
    ? (e.onclick = () => {
        console.log("¡Me dieron un pendal!");
      })
    : false)(document.getElementById("block"));
0
132 / 76 / 16
Регистрация: 08.07.2022
Сообщений: 309
19.02.2023, 00:30 6
Мой любимый способ из jquery. Плюсы в том что, не важно когда блок будет создан, клик будет работать по нему

Javascript
1
2
3
$(document).on('click', '#block', function() {
  console.log(this);
});
0
Эксперт JS
6451 / 3596 / 1072
Регистрация: 07.09.2019
Сообщений: 5,831
Записей в блоге: 1
19.02.2023, 00:53 7
Сравните В силу чего ошибка происходит? Проверка на наличие элемента
0
1306 / 781 / 190
Регистрация: 19.09.2020
Сообщений: 1,993
19.02.2023, 11:04 8
Цитата Сообщение от xkkx Посмотреть сообщение
Мой любимый способ из jquery. Плюсы в том что, не важно когда блок будет создан, клик будет работать по нему
Так и на VJS тоже всё хорошо, если правильно делать.
А шквери - это тлен, который в 2023 году изучать не стоит. Имхо.
0
6 / 6 / 0
Регистрация: 25.01.2021
Сообщений: 203
19.02.2023, 12:03  [ТС] 9
Цитата Сообщение от krvsa Посмотреть сообщение
const o = document.getElementById('block')
if (o) o.addEventListener('cnclick', function() {
   //действие кнопки
})
с Виду понравилось это решение, попробую его. Да мне надо всего лишь что бы когда открывал страницу, не было ошибок, если нет кнопки
0
19.02.2023, 12:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.02.2023, 12:03
Помогаю со студенческими работами здесь

Как обработать ошибки при выборе логарифма
Добрый вечер,очень прошу помочь в написании обработчика ошибок,когда пользователь выбирает...

Как обработать и не показывать ошибки при POST GET запросах?
Здравствуйте гуру. Проблема такая: есть программа которая заходит на сайт логинится и делает там...

Как правильно обработать ошибки при выполнении кода?
Имеется код : public void addMedication(Set&lt;ReservationMedication&gt; reservationMedications) { ...

Как обработать ошибки: - Recordset'a - если база закрывается некорректно, т.е. в следствии обшибки ?
Как обработать ошибки: - Recordset'a - если база закрывается некорректно, т.е. в следствии...

обработать код ошибки
Есть батник @echo off rem Пакетный файл для тестового приложения rem который захватывает...

Правильно обработать таблицу и отловить ошибки
Добрый вечер. Есть таблица, которая содержит в себе несколько полей с данными, которые необходимо...

Отловить и обработать сигнал ошибки sigsegv
пытаюсь отловить и обработать сигнал ошибки в примере #include &lt;windows.h&gt; #include &lt;signal.h&gt;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru