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

Печать RSS
452

Автор
Голубые штаны
0
Дополнительные правила данного топика:

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:

<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)

2000 лет д.н.э.
0
Авторесайз поля ввода 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
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
dima.london, велосипед какой то.
есть функция округления до меньшего 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();
так более оптимально

2000 лет д.н.э.
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)

Пришелец
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/
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск