Полезные отрывки JavaScript кода (первый пост)
1.
Дмитрий (22.10.2011 / 06:34)
Дополнительные правила данного топика:
1) В этом топике разрешено выкладывать ТОЛЬКО работоспособные отрывки кода, написанные на языке JavaScript.
2) Обсуждение сообщений или просьба выложить какой-либо отрывок кода категорически
запрещены!
3) Оформление поста только в таком формате:
Название скрипта (короткое описание)
Код скрипта
4) Активные ссылки на сторонние ресурсы разрешены ТОЛЬКО при условии, что ссылка ведет на загрузку дополнительного файла, который необходимо подключить к странице, чтобы данный отрывок кода работал.
Например,
http://site.ru/code/script.js (либо ссылка на обменник).
Остальные ссылки категорически
запрещены.
5) Если для работоспособности скрипта необходимо подключение дополнительного общедоступного класса либо библиотеки, например jQuery, Mootools и пр., эту информацию обязательно следует указать в посте.
6) Продажа скриптов либо предложения написать скрипт за деньги запрещены.
7) Нарушение данных правил приравнивается к нарушению общих правил сайта и карается баном от 1 до 30 суток.
2.
Валерий (22.10.2011 / 14:21)
Замена <noscript>
Как известно, в 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');
Все внешние ссылки будут открываться в новом окне.
3.
ramzes (27.10.2011 / 14:40)
Авторесайз поля ввода textarea при вводе текста
(в обе стороны)
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>
4.
Дмитрий (08.11.2011 / 11:22)
2 в 1:
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.
5.
Валерий (08.11.2011 / 13:39)
dima.london, велосипед какой то.
есть функция округления до меньшего Math.floor();
Т.е. Math.floor(16/4) или Math.floor(17/4) покажет "4"
А проверить кратно или нет можно так
if(16%4 == 0)
{
кратно
}
else
{
не кратно.
}
6.
Кевин Митник (08.11.2011 / 23:51)
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>');
Максимально опитимизированный, как по мне, кусочек кода : выводит дату,год, месяц
7.
Артур (22.11.2011 / 22:06)
var d = new Date(),
dateW= (['Воскресенье','Понедельник','
Вторник','Среда','Четверг','
Пятниця','Суббота'])[d.getDay()],
month=(['Января','Февраля','Марта','
Апреля','Мая','Июня','Июля','
Августа','Сентября','Октября','
Ноября','Декабря'])[d.getMonth
()],
nDay=d.getDate(),
Year=d.getFullYear();
так более оптимально
8.
ramzes (03.01.2012 / 14:09)
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);
}
9.
Станислав Крунич (08.12.2014 / 13:38)
/**
* 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();
}
},
10.
Александр (08.12.2014 / 13:56)
Использование методов jquery без jquery
http://youmightnotneedjquery.com/
URL:
https://visavi.net/topics/25849