Архив месяца: Январь 2021

Как повесить 2 функции по нажатию одной кнопки в JavaScript (onclick)

2 функции на одно нажатие в JS

Привет, друзья. Есть задача: по нажатию одной кнопки должно срабатывать 2 функции в JS. Решается это очень просто, но у многих начинающих изучать программирование почему-то возникают с этим трудности. Давайте разберем пример с двумя функциями на событии onclick. И как и в предыдущем примере, когда мы делали нажатие на копку в JavaScript, можно пойти двумя способами. На странице есть такая кнопка:

<button type="submit" id="submit">Нажми меня</button>

Первый вариант:

1
2
3
4
5
6
7
8
document.querySelector("#submit").onclick = function(){
  console.log("Результат работы функции 1");
send2();
}
 
function send2(){
  console.log("Результат работы функции 2");
}

В итоге в консоли мы увидим ожидаемый результат:

Обе функции можно написать отдельно, что будет более правильным решением.

1
2
3
4
5
6
7
function send1(){
  console.log("Результат работы функции 1");
}
 
function send2(){
  console.log("Результат работы функции 2");
}

А потом написать либо так:

1
2
3
4
document.querySelector("#submit").onclick = function(){
send1();
send2();
}

Либо так:

<button type="submit" id="submit" onclick="send1(); send2();">Нажми меня</button>

И таким образом кнопка будет обрабатывать сразу две кнопки, то есть будут происходить какие-то действия по нажатию одной кнопки. И как вы смогли догадаться — функций на одно событие можно повесить гораздо больше, чем две. Единственное о чем нужно подумать, это о целесообразности такого подхода. Действительно ли нужна такая необходимость?

Нажатие на кнопку в JavaScript (событие и функции)

Клик по кнопке JS

Привет всем любителя программирования. Это довольно простой урок по такому событию в JavaScript, как нажатие на кнопку. не смотря на то, что это базовые вещи в JS, реализовать нажатие на кнопку можно разными способами. Давайте предположим, что у нас на странице есть некая кнопка.

<button type="submit" id="submit">Нажми меня</button>

Она пока никак не реагирует потому, что мы не повесили на нее никакого события. И давайте рассмотрим первый вариант.

1
2
3
document.querySelector("#submit").onclick = function(){
  alert("Вы нажали на кнопку");
}

Демо

Функция по нажатию кнопки в JavaScript

Событие по клику на кнопку мы создали, но можно сделать то же самое, только напишем функцию, с именем.

1
2
3
function alerted(){
  alert("Вы нажали на кнопку");
}

А к кнопке добавим эту функцию:

<button type="submit" id="submit" onclick="alerted();">Нажми меня</button>

Демо

Вывод на страницу по клику на кнопку в JS

Соответственно по нажатию на кнопку в JavaScript можно делать не только всплывающий alert, но и все, что угодно, передавать данные на сервер, изменять элементы на странице, удалять, копировать и много чего еще. Давайте рассмотрим еще один пример. напишем небольшую функцию, которая будет срабатывать по клику и выводить на страницу случайное число. Для этого под кнопкой добавим элемент DIV с классом sum, в котором будем выводить результат работы JavaScript функции.

<div class="sum"></div>

И сама функция:

1
2
3
function randomSum(min, max) {
  document.querySelector('.sum').innerHTML = (Math.floor(Math.random() * (max - min + 1) ) + min);
}

Для кнопки добавим эту функцию по нажатию:

<button type="submit" id="submit" onclick="randomSum(1000, 9999);">Нажми меня</button>

По нажатию на кнопку под ней будет выведено четырехзначное число от 1000 до 9999 в случайном порядке. Это мы указали в специальных параметрах min и max.

Демо

Нажатие правой кнопкой мыши в JS

Событие клика правой кнопкой мыши в JavaScript отличается от левой и по умолчанию вызывает стандартное контекстное меню браузера. Но мы его можем изменить. Во-первых убрать, а во-вторых задать свое действие.

Запрещаем вывод контекстного меню при клике правой кнопкой мыши:

1
<button type="submit" id="submit" oncontextmenu="return false">Нажми меня</button>

Выводим Alert:

1
2
3
4
document.querySelector("#submit").oncontextmenu = function(){
  alert("Вы нажали на кнопку");
  return false
}

Демо

Это простейший вызов функции по клику в JavaScript и усваивается без особых трудностей. В дальнейшем рекомендую изучать более сложные функции, которые делают различные операции. Например считают сумму, как в калькуляторе расчета стоимости. Надеюсь этот урок оказался для вас полезным. Если остались вопросы, вы всегда можете задать их в комментариях.

Отправляем Email через терминал Windows Powershell (командная строка)

Windows Powershell

Следует начать с того, что Windows Powershell — это не стандартная командная строка с черным фоном. Это другая оболочка и фон у нее темно-синий. Она поставляется в системы Windows начиная в 7 версии. И с ее помощью можно отравлять письма на почту через SMPT сервер. В некоторых случаях такой способ отправки Email может выручить, когда все другие по каким-то причинам вам недоступны. Ну и для общей практики и знакомства с терминалом Windows Powershell и некоторыми его командами, которые в нем называются — командлеты. Вызвать окно Powershell очень просто. Достаточно нажать Win + R и вписать туда Powershell.

Для отправки вам потребуется доступ к почте (логин и пароль). С этого адреса будет отправлен Email.

А вот и сам скрипт:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$EmailTo = "po4ta@mail.ru"
$EmailFrom = "PowerShell mymail@yandex.ru"
$Subject = "Отправка из PowerShell"
$Body = "Тестовое сообщение, <b>отправленное</b> из командной строки PowerShell"
$SMTPServer = "smtp.yandex.ru" 
$filenameAndPath = "C:\Users\777\Downloads\003435.pdf"
$SMTPMessage = New-Object System.Net.Mail.MailMessage($EmailFrom,$EmailTo,$Subject,$Body)
$attachment = New-Object System.Net.Mail.Attachment($filenameAndPath)
$SMTPMessage.IsBodyHTML=$true
$SMTPMessage.Attachments.Add($attachment)
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587) 
$SMTPClient.EnableSsl = $true 
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential("mymail@ya.ru", "mymail123");
$SMTPClient.Send($SMTPMessage)

Теперь разберем более подробно.

1 Куда отправляем Email
2 Имя и адрес отправителя
3 Тема письма
4 Текст письма
5 Имя SMTP сервера
6 Путь к файлу-вложению (если нужен)
7, 8 Формирование объекта сообщения
9 Включение возможности отправлять HTML письма
10 Добавление вложения к письму
11 Указание порта SMTP сервера
12 Включение защищенного соединения SSl
13 Адрес и пароль почты. с которого будет отправка
14 Отправка сообщения

Особенное внимание прошу обратить на 9 строчку. Это полноценная возможность отправлять HTML письма через Windows Powershell по тому же принципу, как это делается в PHP. Необходимо ввести Email, кому вы хотите отправить сообщение, ввести свой адрес почты и пароль, написать текст, потом вставить все это в окно Powershell и нажать Enter. Можете потренироваться на своем ящике. У меня это выглядит вот так:

Отправка email через Windows Powershell
А само письмо вот так:
Email send from PowerShell

В основном эти терминалом пользуются системные администраторы и с его помощью можно решать различные задачи, но рядовому пользователю достаточно знать, что он есть (кстати многие не знают) и умеnь от править через него письмо. На этом знакомство с Windows Powershell подошло к концу. Напишите, знали вы о таком приложении в Виндовс или узнали впервые?

Длина строки и массива в PHP

Узнать длину строки и массива в PHP

Привет. В PHP довольно часто приходится работать со строками и массивами и почти во всех случаях требуется узнать их длину (length). Вполне типичная ситуация и для нее есть встроенные функции в PHP. Но есть некоторые нюансы, к примеру то, что одна из функций, которая показывает длину строки — srtlen считает не количество символов в тексте, а количество байт, который занимает каждый символ. Если латинский символ занимает 1 байт, то на кириллице он займет 2 байта. Об этом я же упоминал в статье по теме: как обрезать текст по количеству слов и символов. Но сейчас постараемся рассмотреть некоторые примеры более детально.

Узнать длину строки в PHP

Первая функция, которая будет вычислять длину строки в PHP, будет strlen.

1
2
3
$str = "Hello World";
echo strlen($str);
// 11 символов вместе с пробелом

А если мы напишем примерно то же самое, но на русском, то получим такой вариант:

1
2
3
$str = "Привет Мир";
echo strlen($str);
// 19 символов вместе с пробелом

В этом случае, как я уже говорил ранее, каждый символ займет 2 байта + 1 байт — это пробел. В итоге мы получим не совсем то, что ожидали. Поэтому в случае с кириллицей, чтобы определить длину строки, следует использовать другие функции. Первая — mb_strlen

1
2
3
$str = "Привет Мир";
echo mb_strlen($str);
// 10 символов вместе с пробелом

В этом случае подсчет символов в строки будет одинаковым как на английском, так и на русском языках. Даже если символ занимает несколько байт, то будет посчитан, как один. Так же есть еще одна функция, чтобы узнать длину строки в символах — iconv_strlen

1
2
3
$str = "Привет Мир";
echo iconv_strlen($str);
// 10 символов вместе с пробелом

iconv_strlen учитывает кодировку строки, ее можно указать вторым параметром. Если она не указана, то кодировка будет внутренней. То есть самого файла.

echo iconv_strlen($str, "UTF-8");

Если возникла необходимость проверить длину строки без пробелов, то потребуется дополнительная функция str_replace

1
2
3
4
$str = "Привет Мир";
echo iconv_strlen(str_replace(' ', '', $str));
// 9 символов без пробелов
//iconv_strlen или mb_strlen

Узнать длину массива в PHP

функция, которая позволяет узнать длину массива в PHP — count.

1
2
3
$arr = ["Иван", "Марина", "Сергей", "Алина"];
echo 'Длина массива ' . count($arr) . ' элемента';
// Длина массива: 4 элемента

То же самое будет с массивом, где есть ключи и значения.

1
2
3
$arr = ['name' => "Иван", "city" => "NY", "age" => 34];
echo 'Длина массива ' . count($arr) . ' элемента';
// Длина массива: 3 элемента

Можно резюмировать:

strlen() Подсчет количества байт в строке
mb_stren() Подсчет символов в строке
iconv_strlen() Подсчет символов строки с учетом кодировки
count() Подсчет элементов массива

На этом можно завершить. Теперь вы можете самостоятельно узнать длину строки в PHP и определить длину массива. А если возникнут вопросы, задавайте их в комментариях.

Если в фотошопе пропала кисть (не видно размер)

Вернуть размер кисти в фотошопе

Привет. Если у вас в фотошопе пропала кисть, то есть сам кружок (радиус) кисти и не видно какого она размера, а вместо этого появился крестик. Не видя четкие границы кисти очень сложно что-то нарисовать. Причем с инструментом Ластик происходит то же самое. Если вы хотите узнать как вернуть все обратно, чтобы снова был виден контур кисти, то это даже проще, чем вы думаете. Дело в том, что на многие инструменты в фотошопе назначены горячие клавиши и на размер кисти назначена клавиша Caps Lock и по всей видимости вы случайно ее нажали.

Клавиша Caps Lock на клавиатуре

Чтобы вернуть размер кисти в исходное состояние вам нужно всего лишь еще раз нажать на клавишу Caps Lock И как вы уже поняли, это занимает 1 секунду. Зато теперь вы знаете почему пропадает кисть в фотошопе и сможете легко и , что самое главное, — быстро это исправить и вернуть кисть как она должна быть изначально. Это, наверное, самый короткий урок на моем сайте.