Web Мастерская»Блог

Сообщество Web Мастеров. Тут собрано всё, чтобы написать свой первый сайт, запустить его в Интернет и поддерживать его в течении всей его работы.

Как проверить существует ли функция на JS

Может потребоваться проверить существует ли функция или нет. Для проверки будем использовать оператор typeof, данный оператор возвращает информацию о типе операнда. Нам достаточно сравнить строчку, что вернет typeof со словом function. Делаем так:
if (typeof NameFunction == 'function') { 
    alert('Функция существует.');
    NameFunction(); // Если функция существует и её необходимо запустить 
}
else {
    alert('Функция не существует.');
};

Код из пример выводит сообщение:
Функция не существует.

Так как функция NameFunction не существует. Если такую функцию создать, например:
function NameFunction() {
    alert('Функция запущена');
};

То проверка выводит:
Функция существует.

А затем запустит саму функцию....

Поиск по сайту на JavaScript

Как подсказывает мне коллега - эта тема не актуальна, и понятно почему, так как поиск по сайту должен выполняться на стороне сервера, а JS выполняется на стороне клиента. Поиск на JS можно сделать на текущей страницы, это будет удобно пользователю, например, когда на одной странице написана большая статья, читатель вбивает слово, которое он хочет найти в поисковую форму, нажимает кнопку Поиск и на странице сразу выделяются все найденные слова, страница при этом не перезагружается. Тут, сценарий ищет совпадения в пределах документа, который уже загружен (кстати, такое умеет делать практически любой браузер (клавиши Ctrl + F)), а как сделать поиск по всему сайту, даже по тем страницам, которые еще не загружены, как это сделать на чистом JS?

Когда у меня еще не было своего места в интернете (хостинга), под мои странички, я ставил эксперименты на статических страницах (наверно многие так делали|делают). У меня была специальная папка на рабочем столе, где хранились всякие написанные мной...

Как вернуться на предыдущую страницу на JS

Небольшая заметка о том, как сделать кнопку вернуться назад на JavaScript. Перехожу сразу к примеру кода. Допустим, кнопка будет выглядеть так:
<button id="back">Вернуться назад</button>

Кроме <button> можно использовать любой другой элемент, например, ссылку или просто картинку, тут главное присутствие идентификатора: id="back".
Теперь сам сценарий (код прокомментировал):
<script type="text/javascript">
function return_back() {   // Функция "return_back" - возвращает на предыдущею страницу
    window.history.back(); // Метод возврата на предыдущею страницу
};

var back = document.getElementById('back');      // Получаем элемент с ID "back"
    back.addEventListener('click', return_back); // Запускаем функцию "return_back" при клике на элемент
</script>

При помощи window.history можно переходить на предыдущие и следующие страницы, что находятся в истории браузера. Если страницы, на которую пытаются перейти нет, то данный метод "промолчит".

Код представленный выше можно сократить,...

Как проверить: Есть ли подстрока в строке на JavaScript

Чтобы проверить, есть ли подстрока в строке я буду использовать метод indexOf. Предназначение данной функции вернуть вхождение заданного значения. Если функция не найдет совпадение в строке, она вернет -1. Пример:
var str = 'Форум Web Мастера и Компьютерщика';
alert(str.indexOf('Форум')); // 0
alert(str.indexOf('Web'));   // 6
alert(str.indexOf('danfa')); // -1

Известно, что условие (if) воспринимает -1, как true, а 0, как false, следовательно, сделав такую проверку:
var str = 'Форум Web Мастера и Компьютерщика';
if (str.indexOf('Форум')) {
    alert('Подстрока найдена!');
}
else {
    alert('Подстрока не найдена.');
}

Мы получим сообщение: "Подстрока не найдена.", так как indexOf вернет 0, а если будем таким же способом проверять наличие подстроки danfa, то скрипт выведет сообщение "Подстрока найдена!". Проверка не правильно отработала в обоих случаях...

Чтобы избежать неверных проверок, к результату функции indexOf мы прибавим единицу (+ 1), тогда все встанет на свои места,...

Как разбить строку в массив на JavaScript

Чтобы разбить строку в массив я буду использовать функцию split. Данная функция для того и была создана, чтобы возвратить новый массив из предоставленной ей строки. Если разделитель не будет указан или совпадение найдено не будет, то функция вернет массив с одним элементом в виде предоставленной строки. Для пример возьмем строку из пяти букв и трех запятых: a, b, c d, f, запятые будем использовать, как разделитель, то есть то что находится между запятыми станет элементом массива. Разделитель необходимо вставить в саму функцию: split(','). У нас должен получиться массив из четырех элементов, три элемента из одной буквы и один из двух:
var str = 'a, b, c d, f';
var arr = str.split(',');

for (var i = 0; i < arr.length; i++) {
    alert(arr[i]);
};

Данный код поочередно выведет на экран четыре сообщения: a b c d f. Мы разбили строку в массив.

Можно задать лимит элементов в массиве, допустим, на выходе получаем массив с четырьмя элементами, а надо получить с тремя. Тут добавляем второй...