Полезные отрывки JavaScript кода (первый пост)
452
0
Дополнительные правила данного топика:
1) В этом топике разрешено выкладывать ТОЛЬКО работоспособные отрывки кода, написанные на языке JavaScript.
2) Обсуждение сообщений или просьба выложить какой-либо отрывок кода категорически запрещены!
3) Оформление поста только в таком формате:
Название скрипта (короткое описание)
4) Активные ссылки на сторонние ресурсы разрешены ТОЛЬКО при условии, что ссылка ведет на загрузку дополнительного файла, который необходимо подключить к странице, чтобы данный отрывок кода работал.
Например, http://site.ru/code/script.js (либо ссылка на обменник).
Остальные ссылки категорически запрещены.
5) Если для работоспособности скрипта необходимо подключение дополнительного общедоступного класса либо библиотеки, например jQuery, Mootools и пр., эту информацию обязательно следует указать в посте.
6) Продажа скриптов либо предложения написать скрипт за деньги запрещены.
7) Нарушение данных правил приравнивается к нарушению общих правил сайта и карается баном от 1 до 30 суток.
1) В этом топике разрешено выкладывать ТОЛЬКО работоспособные отрывки кода, написанные на языке JavaScript.
2) Обсуждение сообщений или просьба выложить какой-либо отрывок кода категорически запрещены!
3) Оформление поста только в таком формате:
Название скрипта (короткое описание)
Код скрипта
4) Активные ссылки на сторонние ресурсы разрешены ТОЛЬКО при условии, что ссылка ведет на загрузку дополнительного файла, который необходимо подключить к странице, чтобы данный отрывок кода работал.
Например, http://site.ru/code/script.js (либо ссылка на обменник).
Остальные ссылки категорически запрещены.
5) Если для работоспособности скрипта необходимо подключение дополнительного общедоступного класса либо библиотеки, например jQuery, Mootools и пр., эту информацию обязательно следует указать в посте.
6) Продажа скриптов либо предложения написать скрипт за деньги запрещены.
7) Нарушение данных правил приравнивается к нарушению общих правил сайта и карается баном от 1 до 30 суток.
0
Замена <noscript>
Как известно, в xhtml нет тега <noscript> (валидатор будет ругаться). Без этого тега можно обойтись.
Делаем так:
Пишем два блока. В одном текст для выключённого javscript, в другом для включенного.
Второй блок скрываем через css {display: none;}
Таким образом, изначально, если JS выключен, будет отображаться только первый блок.
Теперь пишем JS скрипт, который просто закрывает первый блок и открывает второй.
Таким образом, если JS включён, мы будем видеть второй блок.
У меня это реализовано с использованием jquery:
Добавлено через 04:25 сек.
Отправка формы по ctrl+enter
Просто подключаем jquery и добавляем код
Добавлено через 06:36 сек.
Открытие внешних ссылок в новом окне
Подключаем jquery и добавляем код
Как известно, в xhtml нет тега <noscript> (валидатор будет ругаться). Без этого тега можно обойтись.
Делаем так:
Пишем два блока. В одном текст для выключённого javscript, в другом для включенного.
Второй блок скрываем через css {display: none;}
Таким образом, изначально, если JS выключен, будет отображаться только первый блок.
Теперь пишем JS скрипт, который просто закрывает первый блок и открывает второй.
Таким образом, если JS включён, мы будем видеть второй блок.
У меня это реализовано с использованием jquery:
<script type="text/javascript"> $(function() { $('.hide_me').hide(); $('.show_me').show(); }); </script> <style type="text/css"> .show_me{display:no ne;} </style> <div class="hide_me">JavaScript выключен</div> <div class="show_me">JavaScript включен</div>
Добавлено через 04:25 сек.
Отправка формы по ctrl+enter
Просто подключаем jquery и добавляем код
$('form').keypress(function(e){ if(e.which == 13 && e.ctrlKey){this.submit();} });Теперь форма будет отправляться по нажатию ctrl + enter
Добавлено через 06:36 сек.
Открытие внешних ссылок в новом окне
Подключаем jquery и добавляем код
$('a').filter(function(i){ var hostname = window.location.hostname.toLowerCase(); var href = this.href.toLowerCase(); return href.substring(0,7) == 'http://' && href.substring(7,hostname.length+7) != hostname}).attr('target','_blank');Все внешние ссылки будут открываться в новом окне.
Изменил: Валерий (22.10.2011 / 14:26)
0
Авторесайз поля ввода textarea при вводе текста
(в обе стороны)
JS:
(в обе стороны)
JS:
function ResizeTextarea(event, key) { var lines = key.value.split("\n"); if(lines.length > 2 ){ // минимальный порог увеличения key.rows = lines.length + 1; }else{ key.rows = 2; // дефолтное кол-во строк } }HTML:
<textarea onKeyUp="ResizeTextarea(event, this)" name="anyName" cols="20" rows="2" placeholder="Введите ваш текст"></textarea>
Изменил: ramzes (27.10.2011 / 14:41)
0
2 в 1:
1) Подсчет, сколько раз число делится на число
2) Определение кратности числа
Ф-я определит, что, к примеру, число 16 или 17 делится на "4" четыре раза.
Так же она скажет, что 16 кратно 4, но 17 уже не кратно 4.
1) Подсчет, сколько раз число делится на число
2) Определение кратности числа
<script type="text/javascript"> // ф-я подсчета кол-ва вхождений function count_crat(str, crat) { var count = 0; if ( (str !=0) && (crat !=0) && (str >= crat) ) { for(n=crat; n<=str; n++) { if(n%crat == 0) { count++; } } } return count; }; var str = 41; // обрабатываемое число var crat = 4; // число, с которым должна быть кратность // подсчет, сколько раз делится число на кратность strcount = count_crat(str, crat); // определение кратности if ( (str/strcount) == crat ){ alert(str + ' кратно ' + crat); } else alert(str + ' не кратно ' + crat); </script>Только что написал для своих целей.
Ф-я определит, что, к примеру, число 16 или 17 делится на "4" четыре раза.
Так же она скажет, что 16 кратно 4, но 17 уже не кратно 4.
0
dima.london, велосипед какой то.
есть функция округления до меньшего Math.floor();
Т.е. Math.floor(16/4) или Math.floor(17/4) покажет "4"
А проверить кратно или нет можно так
if(16%4 == 0)
{
кратно
}
else
{
не кратно.
}
есть функция округления до меньшего Math.floor();
Т.е. Math.floor(16/4) или Math.floor(17/4) покажет "4"
А проверить кратно или нет можно так
if(16%4 == 0)
{
кратно
}
else
{
не кратно.
}
0
var dayArray = new Array('Воскресенье','Понедельник','Вторник','Среда','Четверг','Пятниця','Суббота'); var monthArray = new Array('Января','Февраля','Марта','Апреля','Мая','Июня','Июля','Августа','Сентября','Октября','Ноября','Декабря'); var dateWeek =new Date(); var dateW= dateWeek.getDay(); var month=dateWeek.getMonth(); var nDay=dateWeek.getDate(); var Year=dateWeek.getYear(); document.write(dayArray[dateW] + ' ' + nDay + ' ' + monthArray[month] +' ' + (1900 +Year) +' года<br><br>');Максимально опитимизированный, как по мне, кусочек кода : выводит дату,год, месяц
Изменил: Кевин Митник (08.11.2011 / 23:52)
0
var d = new Date(),
dateW= (['Воскресенье','Понедельник','
Вторник','Среда','Четверг','
Пятниця','Суббота'])[d.getDay()],
month=(['Января','Февраля','Марта','
Апреля','Мая','Июня','Июля','
Августа','Сентября','Октября','
Ноября','Декабря'])[d.getMonth
()],
nDay=d.getDate(),
Year=d.getFullYear();
так более оптимально
dateW= (['Воскресенье','Понедельник','
Вторник','Среда','Четверг','
Пятниця','Суббота'])[d.getDay()],
month=(['Января','Февраля','Марта','
Апреля','Мая','Июня','Июля','
Августа','Сентября','Октября','
Ноября','Декабря'])[d.getMonth
()],
nDay=d.getDate(),
Year=d.getFullYear();
так более оптимально
0
function printDate(){ var mydate = new Date(); var min = mydate.getMinutes(); var hour = mydate.getHours(); min = min<10 ? '0' + min:min; hour = hour<10 ? '0' + hour:hour; var weekDay = new Array('Воскресенье', 'Понедельник','Вторник','Среда','Четверг','Пятница','Суббота'); var Mounth = new Array('Января', 'Февраля', 'Марта', 'Апреля', 'Мая', 'Июня', 'Июля', 'Августа', 'Сентября', 'Октября', 'Ноября', 'Декабря'); var stringDate = '<span>'+mydate.getDate()+' '+Mounth[mydate.getMonth()]+' '+hour+':'+min+' '+weekDay[mydate.getDay()]+'</span>'; $('#time').html(stringDate); }
Изменил: ramzes (03.01.2012 / 14:11)
Станислав Крунич
08.12.2014 / 13:38
Пришелец
Пришелец
0
/** * typeNumber : function(e) onKeydown валидация чисел * @param event e (onKeydown) * @access simulate private * return event */ typeNumber : function(e) { var theEvent = e || window.event; var key = theEvent.keyCode || theEvent.which; key = String.fromCharCode( key ); var regex = /[A-Z]|\./; if(regex.test(key) ) { theEvent.returnValue = false; if(theEvent.preventDefault) theEvent.preventDefault(); } },
0
Использование методов jquery без jquery http://youmightnotneedjquery.com/
Для выполнения действия необходимо авторизоваться!