Привязка кнопки веб-элемента к кнопке на клавиатуре
По итогу я хочу получить такую реализацию, чтобы по нажатию на веб-элемент мышкой происходило то же, что произошло если бы я нажала «F12» на клавиатуре ПК.
Отслеживать
задан 1 сен 2018 в 14:32
131 1 1 золотой знак 2 2 серебряных знака 13 13 бронзовых знаков
1 сен 2018 в 15:45
хотите разобраться — пишите мне, правьте вопрос, а не ищите минусующих
1 сен 2018 в 15:55
Браузер, может перехватывать события нажатия клавиш. Но он вам не позволит генерировать нажатие клавиш и пробрасывать их в ОС. Это не безопасно. С такой возможностью можно удалить данные с диска путём нажатия клавиш, например.
1 сен 2018 в 16:20
@Yiulia, вы пишите расширение для хрома? если нет — то это невозможно
1 сен 2018 в 16:20
@Yiulia, bugs.chromium.org/p/chromium/issues/detail?id=112277 «We only allow explicit devtools opening.» — судя по всему, и в расширении это не доступно.
1 сен 2018 в 16:34
1 ответ 1
Сортировка: Сброс на вариант по умолчанию
К сожалению это не сработает в целях безопасности Javascript, хотя если после нажатия должно выполнится событие внутри приложения (сайта) то имеется решение привязки к одной функции.
function toggleBg() < alert("test"); >document.addEventListener('keypress', function(event) < if (event.keyCode == 112) < toggleBg(); >>);
Как сделать вызов функции при нажатии кнопки через javascript?
Чтобы сделать вызов функции при нажатии на кнопку, сначала в html документе создаём кнопку. Например, так:
id="myButton">Press me!
Теперь переходим в подключенный к html документу javascript файл.
-
Объявляем функцию, которую хотим вызывать при нажатии на кнопку:
const callback = () => alert("Hello, World!"); >;
const button = document.querySelector('#myButton');
button.addEventListener('click', callback);
Теперь при нажатии кнопки увидим всплывающее окно с надписью Hello, World! .
Обработчик события кнопки на JavaScript

На предыдущих уроках по JavaScript, мы научились получать и изменять элементы на страницах. Но зачем это нужно, если можно сразу создать страницу с необходимым HTML кодом? Так мы и делаем всегда — сначала создаем статическую страницу, только одного этого недостаточно. Дело в том, что взаимодействие с пользователем происходит при помощи событий мыши или клавиатуры и нам надо как-то реагировать на эти события.
Статичная кнопка
У меня на сайте есть кнопка, при нажатии на которую ничего не происходит. Как заставить кнопку реагировать на клик пользователя (например менять текст на ней)?
#myBtn background-color: #9C27B0;
color: white;
padding: 20px;
font-size: 20px;
font-weight: bold;
border: none;
cursor: pointer;
width: 250px;
margin: 20px 200px;
>

Превращение статичной кнопки в интерактивную
Вот теперь нам пригодится навык поиска элементов на странице.
1) Шаг. Получение элемента, событие которого вы хотите обрабатывать.
Мы хотим обрабатывать событие клика на элементе с идентификатором myBtn. Поэтому объявим переменную buttonElem и при помощи метода getElementById сохраним кнопку в эту переменную.
const buttonElem = document.getElementById(‘myBtn’);
2) Шаг. Создание функции, которая будет вызываться при возникновении события «клик».
Создадим функцию с логичным названием onButtonClick. Функция должна заменить текст на кнопке, поэтому пропишем в теле функции выражение, которое изменит содержимое тега button. Обратимся к переменной и через свойство textContent заменим надпись на кнопке. Пока на данном этапе, при нажатии на кнопку ничего не происходит. Ведь браузер еще не знает, какую функцию ему вызывать при после клика на кнопку.
let onButtonClick = function() buttonElem.textContent = ‘Спасибо за клик’
>
3) Шаг. Связать обработчик события с событием клика и элементом.
Должен кто-то отследить событие клика по кнопке и сообщить об этом браузеру. Этот кто-то, называется обработчик событий addEventListener. Повесим на buttonElem метод addEventListener и передадим ему два аргумента: название события «Click» и название функции. Функция будет вызываться, при наступлении указанного события.
Ура! Наш JS код сработал, когда мы нажимаем на кнопку — меняется текст кнопки.
const buttonElem = document.getElementById(‘myBtn’);
let onButtonClick = function() buttonElem.textContent = ‘Спасибо за клик’
>

Как работают функции?
В примере используется функция обратного вызова (callback). Отличается она от обычной функции тем, что вызывается сразу после определенного события. В нашем случае, после события клика. Обычная функция выполняется сразу после загрузки страницы или через указанный интервал времени.
Если было бы нужно вызвать функцию без привязки к событиям, то мы добавили бы следующую строчку. Скобки после названия означают вызов функции без привязки к событиям и тогда текст на кнопке изменится сразу после загрузки страницы.
Если убрать скобки, тогда это будет ссылка на функцию, которую мы передаем вторым аргументом при установки слушателя событий. Мы говорим браузеру, что эту функцию нужно будет вызвать, но только после клика пользователя по кнопке. Поэтому у функции обратного вызова нельзя ставить скобки.
В качестве второго аргумента можно передавать анонимную функцию. Анонимная функция не имеет имени и вместо имени вставляется инструкция (код JavaScript), что делает эта функция.
buttonElem.addEventListener(‘click’, function() buttonElem.textContent = ‘Спасибо за клик’
>);
Анонимная и именованная функция делают одно и тоже и оба варианта рабочие. Большинство разработчиков используют именованные функции, такой код проще читается. Создание обработчика событий не требует написания много строчек кода и вместо события click, можно привязывать другие события к совершенно разным элементам. А базовые принципы изложены в этой статье.

![]()
Создано 12.04.2021 10:12:41
Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!
Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.
Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления
Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.
Порекомендуйте эту статью друзьям:
Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):
- Кнопка:
Она выглядит вот так: - Текстовая ссылка:
Она выглядит вот так: Как создать свой сайт - BB-код ссылки для форумов (например, можете поставить её в подписи):
Комментарии ( 0 ):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.
Copyright © 2010-2024 Русаков Михаил Юрьевич. Все права защищены.
Как добавить onclick к кнопке через js
Свойство onclick у элемента отвечает за обработку события клика по элементу. Чтобы добавить обработчик, достаточно просто присвоить этому свойству функцию, которая вызовется при клике:
// Получаем элемент const element = document.getElementById('test'); // Добавляем обработку события element.onclick = (event) => // . console.log(event); >;
Этот способ имеет недостаток: нельзя навешать несколько обработчиков-функций на событие.
// Получаем элемент const element = document.getElementById('test'); // Добавляем обработку события element.onclick = (event) => // . console.log('first handler'); >; // Добавляем второй обработчик element.onclick = (event) => // . console.log('second handler'); >;
Первый обработчик перезапишется вторым. Чтобы этого избежать, лучше использовать addEventListener() :
// Получаем элемент const element = document.getElementById('test'); // Добавляем обработку события element.addEventListener('click', (event) => // . console.log('first handler'); >); // Добавляем второй обработчик element.addEventListener('click', (event) => // . console.log('second handler'); >);
В таком случае оба обработчика будут срабатывать по клику на элементе.