Полезные отрывки JavaScript кода (первый пост)

Печать / RSS
0
1. Дмитрий 22.10.2011 / 06:34
Малиновые штаны
Дополнительные правила данного топика:

1) В этом топике разрешено выкладывать ТОЛЬКО работоспособные отрывки кода, написанные на языке JavaScript.

2) Обсуждение сообщений или просьба выложить какой-либо отрывок кода категорически запрещены!

3) Оформление поста только в таком формате:
Название скрипта (короткое описание)
Код скрипта


4) Активные ссылки на сторонние ресурсы разрешены ТОЛЬКО при условии, что ссылка ведет на загрузку дополнительного файла, который необходимо подключить к странице, чтобы данный отрывок кода работал.
Например, http://site.ru/code/script.js (либо ссылка на обменник).
Остальные ссылки категорически запрещены.

5) Если для работоспособности скрипта необходимо подключение дополнительного общедоступного класса либо библиотеки, например jQuery, Mootools и пр., эту информацию обязательно следует указать в посте.

6) Продажа скриптов либо предложения написать скрипт за деньги запрещены.

7) Нарушение данных правил приравнивается к нарушению общих правил сайта и карается баном от 1 до 30 суток.
0
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');

Все внешние ссылки будут открываться в новом окне.
Изменил: Валерий (22.10.2011 / 14:26)
0
3. ramzes 27.10.2011 / 14:40
2000 лет д.н.э.
Авторесайз поля ввода 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>
Изменил: ramzes (27.10.2011 / 14:41)
0
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.
0
5. Валерий 08.11.2011 / 13:39
Чатланин
dima.london, велосипед какой то.
есть функция округления до меньшего Math.floor();
Т.е. Math.floor(16/4) или Math.floor(17/4) покажет "4"
А проверить кратно или нет можно так
if(16%4 == 0)
{
кратно
}
else
{
не кратно.
}
0
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>');

Максимально опитимизированный, как по мне, кусочек кода : выводит дату,год, месяц
Изменил: Кевин Митник (08.11.2011 / 23:52)
0
7. Артур 22.11.2011 / 22:06
Оранжевые штаны
var d = new Date(),
dateW= (['Воскресенье','Понедельник','
Вторник','Среда','Четверг','
Пятниця','Суббота'])[d.getDay()],
month=(['Января','Февраля','Марта','
Апреля','Мая','Июня','Июля','
Августа','Сентября','Октября','
Ноября','Декабря'])[d.getMonth
()],
nDay=d.getDate(),
Year=d.getFullYear();
так более оптимально
0
8. ramzes 03.01.2012 / 14:09
2000 лет д.н.э.

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)
0
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();
}
},
0
10. Александр 08.12.2014 / 13:56
Оранжевые штаны
Использование методов jquery без jquery http://youmightnotneedjquery.com/
Для выполнения действия необходимо авторизоваться!
Стикеры / Теги / Правила / Топ тем / Топ тем / Поиск