Javascript.RU

10 лучших функций на JavaScript

Переписанный вариант статьи Дастина Диаза

Если бы существовал универсальный файл common.js, которым пользовались бы все разработчики, вы бы нашли там эти десять (плюс одна бонусная) функций.

UPDATE март 2010: Эта статья была обновлена и переписана, чтобы соответствовать сегодняшнему дню и общему уровню сайта.

Эти функции неоднократно были испытаны и доказали свою полезность всем тем, кто их использовал. Поэтому, без лишних вступлений, вот список из десяти, по моему мнению, величайших пользовательских функций на JavaScript, которые используются в настоящее время.

Современные яваскрипт-фреймворки, конечно же, умеют все эти функции. Но иногда нужно сделать что-то без фреймворка. По разным причинам. Для этого и предназначен данный сборник полезных функций

Несомненно, важнейший инструмент в управлении событиями! Вне зависимости от того, какой версией вы пользуетесь и кем она написана, она делает то, что написано у неё в названии: присоединяет к элементу обработчик события.

function addEvent(elem, evType, fn) {
	if (elem.addEventListener) {
		elem.addEventListener(evType, fn, false);
	}
	else if (elem.attachEvent) {
		elem.attachEvent('on' + evType, fn)
	}
	else {
		elem['on' + evType] = fn
	}
}

Этот код обладает двумя достоинствами - он простой и кросс-браузерный.

Основной его недостаток - в том, он не передает this в обработчик для IE. Точнее, этого не делает attachEvent.

Для передачи правильного this можно заменить соответствующую строку addEvent на:

elem.attachEvent("on"+evType, function() { fn.apply(elem) })

Это решит проблему с передачей this, но обработчик никак нельзя будет снять, т.к. detachEvent должен вызывать в точности ту функцию, которая была передана attachEvent.

Существует два варианта обхода проблемы:

  1. Возвращать функцию, использованную для назначения обработчика:
    function addEvent(elem, evType, fn) {
    	if (elem.addEventListener) {
    		elem.addEventListener(evType, fn, false)
                    return fn
    	}
    
            iefn = function() { fn.call(elem) } 
            elem.attachEvent('on' + evType, iefn)
    	return iefn
    }
    
    function removeEvent(elem, evType, fn) {
    	if (elem.addEventListener) {
    		elem.removeEventListener(evType, fn, false)
                    return
    	}
     
            elem.detachEvent('on' + evType, fn)
    }
    

    Используется так:

    function handler() { 
        alert(this) 
    }
    var fn = addEvent(elem, "click", handler)
    ...
    removeEvent(elem, "click", fn)
    
  2. Можно не использовать this в обработчике события вообще, а передавать элемент через замыкание:

    function handler() { 
       // используем не this, а переменную, ссылающуюся на элемент
        alert(*!*elem*/!*) 
    }
    ...
    

В качестве альтернативы и для примера более серьезной библиотеки обработки событий вы можете рассмотреть статью Кросс-браузерное добавление и обработка событий.

Для инициализации страницы исторически использовалось событие window.onload, которое срабатывает после полной загрузки страницы и всех объектов на ней: счетчиков, картинок и т.п.

Событие onDOMContentLoaded - гораздо лучший выбор в 99% случаев. Это событие срабатывает, как только готов DOM документ, до загрузки картинок и других не влияющих на структуру документа объектов.

Это очень удобно, т.к. картинки могут загружаться долго, а обработчик onDOMContentLoaded может произвести необходимые изменения на странице и инициализацию интерфейсов тут же, не дожидаясь загрузки всего.

Для добавления обработчика можно использовать следующий кроссбраузерный код:

function bindReady(handler){

	var called = false

	function ready() { // (1)
		if (called) return
		called = true
		handler()
	}

	if ( document.addEventListener ) { // (2)
		document.addEventListener( "DOMContentLoaded", function(){
			ready()
		}, false )
	} else if ( document.attachEvent ) {  // (3)

		// (3.1)
		if ( document.documentElement.doScroll && window == window.top ) {
			function tryScroll(){
				if (called) return
				if (!document.body) return
				try {
					document.documentElement.doScroll("left")
					ready()
				} catch(e) {
					setTimeout(tryScroll, 0)
				}
			}
			tryScroll()
		}

		// (3.2)
		document.attachEvent("onreadystatechange", function(){

			if ( document.readyState === "complete" ) {
				ready()
			}
		})
	}

	// (4)
    if (window.addEventListener)
        window.addEventListener('load', ready, false)
    else if (window.attachEvent)
        window.attachEvent('onload', ready)
    /*  else  // (4.1)
        window.onload=ready
	*/
}
readyList = []

function onReady(handler) {

	if (!readyList.length) {
		bindReady(function() {
			for(var i=0; i<readyList.length; i++) {
				readyList[i]()
			}
		})
	}

	readyList.push(handler)
}

Использование:

onReady(function() {
  // ... 
})

Подробное описание функций bindReady, onReady и принципы их работы вы можете почерпнуть в статье Кроссбраузерное событие onDOMContentLoaded.

Изначально не написана никем конкретно. Многие разработчики писали свои собственные версии и ничья не показала себя лучше остальных.

Следующая функция использует встроенный метод getElementsByClass, если он есть, и ищет элементы самостоятельно в тех браузерах, где этого метода нет.

if(document.getElementsByClassName) {

	getElementsByClass = function(classList, node) {    
		return (node || document).getElementsByClassName(classList)
	}

} else {

	getElementsByClass = function(classList, node) {			
		var node = node || document,
		list = node.getElementsByTagName('*'), 
		length = list.length,  
		classArray = classList.split(/\s+/), 
		classes = classArray.length, 
		result = [], i,j
		for(i = 0; i < length; i++) {
			for(j = 0; j < classes; j++)  {
				if(list[i].className.search('\\b' + classArray[j] + '\\b') != -1) {
					result.push(list[i])
					break
				}
			}
		}
	
		return result
	}
}
classList
Список классов, разделенный пробелами, элементы с которыми нужно искать.
node
Контекст поиска, внутри какого узла искать

Например:

var div = document.getElementById("mydiv")
elements = getElementsByClass('class1 class2', div)

Следующие две функции добавляют и удаляют класс DOM элемента.

function addClass(o, c){
    var re = new RegExp("(^|\\s)" + c + "(\\s|$)", "g")
    if (re.test(o.className)) return
    o.className = (o.className + " " + c).replace(/\s+/g, " ").replace(/(^ | $)/g, "")
}
 
function removeClass(o, c){
    var re = new RegExp("(^|\\s)" + c + "(\\s|$)", "g")
    o.className = o.className.replace(re, "$1").replace(/\s+/g, " ").replace(/(^ | $)/g, "")
}

Если быть честным, наверное для этой функции существует больше различных вариантов, чем было бы нужно.

Этот вариант никоим образом он не претендует на звание универсальной функции-"переключателя", но он выполняет основную функциональность показывания и спрятывания.

function toggle(el) {
    el.style.display = (el.style.display == 'none') ? '' : 'none'
}

Обратите внимание, в функции нет ни слова про display='block', вместо этого используется пустое значение display=''. Пустое значение означает сброс свойства, т.е. свойство возвращается к значению, указанному в CSS.

Таким образом, если значение display для данного элемента, взятое из CSS - none (элемент спрятан по умолчанию), то эта функция toggle не будет работать.

Этот вариант функции toggle красив и прост, однако этот и некоторые другие недостатки делают его недостаточно универсальным. Более правильный вариант toggle, а также функции show и hide описаны в статье Правильные show/hide/toggle.

Как и getElementsByClass, этой функции почему-то нет в стандарте DOM. Возможно, чтобы избежать дублирования функционала, т.к. insertAfter реализуется всего одной строчкой.

function insertAfter(parent, node, referenceNode) {
	parent.insertBefore(node, referenceNode.nextSibling);
}

Очень жаль, что это не часть встроенной функциональности DOM. Зато теперь у нас есть возможность всё время вставлять такие вот замечания!

Для поиска эта функция использует проверку ===, которая осуществляет поиск по точному сравнению, без приведения типов.

Метод Array.prototype.indexOf поддерживается не во всех браузерах, поэтому используется, если существует.

inArray = Array.prototype.indexOf ?
    function (arr, val) {
        return arr.indexOf(val) != -1
    } :
    function (arr, val) {
        var i = arr.length
        while (i--) {
            if (arr[i] === val) return true
        }
        return false
    }

В javascript нет способа нормально работать с cookie без дополнительных функций. Не знаю, кто проектировал document.cookie, но сделано на редкость убого.

Поэтому следующие функции или их аналоги просто необходимы.

// возвращает cookie если есть или undefined
function getCookie(name) {
	var matches = document.cookie.match(new RegExp(
	  "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
	))
	return matches ? decodeURIComponent(matches[1]) : undefined 
}

// уcтанавливает cookie
function setCookie(name, value, props) {
	props = props || {}
	var exp = props.expires
	if (typeof exp == "number" && exp) {
		var d = new Date()
		d.setTime(d.getTime() + exp*1000)
		exp = props.expires = d
	}
	if(exp && exp.toUTCString) { props.expires = exp.toUTCString() }

	value = encodeURIComponent(value)
	var updatedCookie = name + "=" + value
	for(var propName in props){
		updatedCookie += "; " + propName
		var propValue = props[propName]
		if(propValue !== true){ updatedCookie += "=" + propValue }
	}
	document.cookie = updatedCookie

}

// удаляет cookie
function deleteCookie(name) {
	setCookie(name, null, { expires: -1 })
}

Аргументы:

name
название cookie
value
значение cookie (строка)
props
Объект с дополнительными свойствами для установки cookie:

expires
Время истечения cookie. Интерпретируется по-разному, в зависимости от типа:

  • Если число - количество секунд до истечения.
  • Если объект типа Date - точная дата истечения.
  • Если expires в прошлом, то cookie будет удалено.
  • Если expires отсутствует или равно 0, то cookie будет установлено как сессионное и исчезнет при закрытии браузера.
path
Путь для cookie.
domain
Домен для cookie.
secure
Пересылать cookie только по защищенному соединению.

Она позволяет функции работать одинаково при передаче DOM-узла или его id.

function byId(node) {
        return typeof node == 'string' ? document.getElementById(node) : node
}

Используется просто:

function hide(node) {
    node = byId(node)
    node.style.display = 'none'
}

function animateHide(node)
   node = byId(node)
   something(node)
   hide(node)
}

Здесь обе функции полиморфны, допускают и узел и его id, что довольно удобно, т.к. позволяет не делать лишних преобразований node <-> id.


Надеюсь, этот небольшой и удобный список JavaScript-функций будет столь же полезен вам, сколь он полезен мне.


Автор: Арсений (не зарегистрирован), дата: 16 февраля, 2009 - 12:03
#permalink

в JS нет худших и лучших функций, все нужны и полезны в конкретных ситуациях


Автор: Dmitris (не зарегистрирован), дата: 19 февраля, 2009 - 10:22
#permalink

Я бы еще добавил динамическую подгрузку JavaScript файлов, например этот метод: http://www.artlebedev.ru/tools/technogrette/js/include/

или метод который используется в Scriptalicous


Автор: Aleko (не зарегистрирован), дата: 8 января, 2010 - 02:40
#permalink

Не нашел куда написать, поэтому пишу сюда. Я написал самое компактное определение IE из всех которые я знаю. Думаю пригодится:

var ie=!-[1,];
alert(ie);

можно и в 5 символов, но будет возвращаться false в эксплорере

var notie=-[1,];
alert(notie);

Используется баг с подсчетом элементов массива.

Подробнее здесь: линк


Автор: Илья Кантор, дата: 11 января, 2010 - 12:18
#permalink

Статью переписал. Как следствие, многие комментарии перестали относиться к переписанному варианту и были убраны.
По виду, получилось более актуально чем было...


Автор: Бобр, дата: 21 января, 2010 - 10:14
#permalink

Функции setCookie и getCookie работают в FireFox, но не работают в Chrome:

setCookie('Test1', 'TestText1', "");
alert(getCookie('Test1'));

В чём тут дело? Либо можно пример вызова, который точно работает?


Автор: Илья Кантор, дата: 21 января, 2010 - 11:40
#permalink

Дело в том, что 3й аргумент - props - объект. Если не хотите его указывать - не надо ставить "".

setCookie('Test1', 'TestText1');
alert(getCookie('Test1'));

Автор: Бобр, дата: 21 января, 2010 - 12:49
#permalink

Так тоже не работает. У вас установлен Хром? Ну, попробуйте создать пустую страничку с одним этим скриптом. Выдаст undefined. A FireFox - "TestText1".


Автор: Илья Кантор, дата: 21 января, 2010 - 13:09
#permalink

Да, установлен. Попробуйте сами - вот страничка http://javascript.ru/test.html . Все работает.


Автор: Бобр, дата: 21 января, 2010 - 13:24
#permalink

Но я же не могу свои странички к вам на сервер закачивать. Я запускаю со своего винчестера. И не работает.


Автор: Илья Кантор, дата: 21 января, 2010 - 13:51
#permalink

Закачайте их к себе на сервер и запустите. Дело, видимо, как раз в том, что вы с винчестера запускаете, а надо - с сайта.


Автор: Бобр, дата: 21 января, 2010 - 17:24
#permalink

А у меня сейчас нету сервера. Да и неудобно это. Вот на винчестере страничка, я её правлю, и сразу проверяю в браузере, никуда не закачивая.

Да и в FireFox'e то работает нормально. Может что-то не учтено, надо в скрипт ещё какую-то строчку кода для Хрома добавить?


Автор: Гость (не зарегистрирован), дата: 22 января, 2010 - 23:34
#permalink

Насколько я знаю, кука ставиться для УРЛа (Домена).
Если вы открываете страничку с винта, то где там имя домена?
Возможно Хром понимает бесполезность такого действия и ничего не предпринимает.
Насчет сервера: почему это неудобно? Неужели трудно поставить Денвер или какой-нибудь его аналог и работать в нормальных условиях, приближенных к реальным?


Автор: Гость (не зарегистрирован), дата: 5 ноября, 2010 - 14:37
#permalink

localhost )


Автор: SergeyM (не зарегистрирован), дата: 21 марта, 2011 - 18:06
#permalink

В хроме, начиная с 5й версии локально многие вещи не работают.
Например "ajax" и cookie.

Чтобы это работало "с винчестера" нужно запускать chrome.exe с ключами (можно дописать в свойства ярлыка):
--allow-file-access-from-files --enable-file-cookies


Автор: Гость (не зарегистрирован), дата: 21 мая, 2010 - 08:25
#permalink

у хрома (по крайней мере на начальных этапах его становления и развития) наблюдается проблема с работой кук. долго бился, пока не понял это =( куки ни одним обычным методом не удалялись: и пустоту в них писал, и нулл, и время в прошлое... просто голову сломал.


Автор: smashercosmo, дата: 4 марта, 2010 - 20:57
#permalink

Объясните пожалуйста, зачем в функции getElementsByClass():
a) нужна переменная key
b) нужны границы слова в

'\\b' + classArray[j] + '\\b'

Автор: Илья Кантор, дата: 31 марта, 2010 - 01:05
#permalink

а) убрал, она лишняя была
б) границы нужны, чтобы корректно обрабатывать элемент со множеством классов:

<div class="header logo">...</div>

Автор: smashercosmo, дата: 15 апреля, 2010 - 12:49
#permalink

Без указания границ слова всё обрабатывается корректно. По крайней мере я не смог создать такую ситуацию, когда отсутствие границ слова вызвало бы ошибку. Проверял с разными классами, с разным количеством пробелов, в разных браузерах. Не могли бы вы привести пример когда без границ слова, будет выводиться что-то неправильное?


Автор: smashercosmo, дата: 21 апреля, 2010 - 12:54
#permalink

Всё. Дошло. На самом деле "\\b" нужно не для того чтобы обрабатывать элементы с несколькими классами. А для таких случаев, если у меня есть один элемент с "class1" и другой элемент с "class11111". Без "\\b" по запросу "class1" будут найдены оба элемента.


Автор: Гость (не зарегистрирован), дата: 17 мая, 2010 - 15:58
#permalink

Пожалуйста верните комментарий, в котором приведены аналоги на JQuery.
Он был очень полезным.


Автор: GreatRash, дата: 17 августа, 2010 - 13:52
#permalink

Нашел красивейшую функцию по замене inArray:

function oc(a) {
	var o = {};
	
	for (var i = 0, l = a.length; i < l; i++) {
		o[a[i]] = '';
	}
	
	return o;
}

alert('test' in oc(['te', 'st', 'test']));
alert('test' in oc(['te', 'st', 'es', 't']));
alert(25 in oc([1, 2, 3, 4, 25]));
alert(1 in oc([2, 3, 4, 25]));

Источник


Автор: MainBuh, дата: 3 декабря, 2010 - 13:51
#permalink

Да действительно орининальное решение - но бесполезное - слишком много итераций. Это при больших массивах очень долго, особенно если искомое значение (по "закону полдлости") будет вначале масива.
Еще недостаток она не универсальна - с объектами работать не будет
("...a.length ...").

Знаю что не открываю Америку и не изобретаю велосипед - поэтому это только для GreatRash (автора комментария):

//-Проверяет содержится ли значение в массиве/объекте
inObject=inArray=function(obj, value, flEqualityType){
/*
Параметры:
- obj - объект или массив значений в котором ищем
- value - искомое значение
- flEqualityType - (необязательный) - флаг сравнения типов [true | false]
(по умолчанию false - сравнение без типов данных)
*/
var obj=obj, value=value, flEqualityType=flEqualityType || false;
if(!obj || typeof(obj)!='object') return false;
for(var i in obj){
if(flEqualityType===true && obj[i]===value) return true;
if(flEqualityType===false && obj[i]==value) return true;
}
return false;
};


Автор: blogic (не зарегистрирован), дата: 20 августа, 2010 - 21:06
#permalink

Функция insertAfter не будет работать, если попытаться вставить ноду после последнего элемента в узле, т.к. его nextSibling == null. Вот рабочий вариант:

function insertAfter(node, ref_node) {
	var next = ref_node.nextSibling;

	if (next) next.parentNode.insertBefore(node, next);
	else ref_node.parentNode.appendChild(node);
}

Можно обойтись и без дополнительной переменной next, но так наглядней...


Автор: RomanWeberov (не зарегистрирован), дата: 10 сентября, 2010 - 18:49
#permalink

Ваш пример нужно дорабатывать, т.к. nextsibling может указывать на текстовый элемент.

function next(elem) {
do {
elem = elem.nextSibling;
} while ( elem && elem.nodeType != 1 );
return elem;
}

Ну и соответственно

var next = next(ref_node);

Автор: blogic (не зарегистрирован), дата: 17 сентября, 2010 - 12:43
#permalink

RomanWeberov, с какой такой стати текстовые элементы не должны учитываться? Функция insertAfter() должна вставлять элемент строго после указанного и никак иначе.


Автор: Илья Кантор, дата: 11 сентября, 2010 - 13:41
#permalink

Вы проверяли, что не будет работать?

Относительно текстового элемента - он тоже элемент..


Автор: blogic (не зарегистрирован), дата: 17 сентября, 2010 - 13:01
#permalink

Да, надо было проверить:(
Теперь буду знать:)
Но в любом случае, функцию можно упростить, убрав из списка аргументов parent'а.


Автор: юрист (не зарегистрирован), дата: 13 октября, 2010 - 20:57
#permalink

Отличная подборка сценариев Обожаю ваш блог и ваш труд


Автор: monolithed, дата: 5 января, 2011 - 00:08
#permalink

Илья, мне кажется пример с getElementsByClassName() может ввести в заблуждение новичков, потому как этот метод по спецификации принимает один аргумент, а у тебя в примере использования их несколько причем еще и ID. Для этого есть querySelector(), querySelectorAll();

К тому же код можно упростить, сделать более универсальным, а также значительно увеличить производительность:

<script type="text/javascript">
window.onload = function() {
	getElementsByClass = function(getClass){
		if(document.querySelectorAll) {
			return document.querySelectorAll("." + getClass);
		}
		else if(document.getElementsByClassName) {
			return document.getElementsByClassName(getClass);
		}
		else {
			var list = document.getElementsByTagName('*'), i = list.length,
			classArray = getClass.split(/\s+/), result = [];
			while(i--) {
				if(list[i].className.search('\\b' + classArray + '\\b') != -1) {
					result.push(list[i]);
				}
			}
			return result;
		}
	};
	getElementsByClass('class')[0].style.color = 'red';
};
</script>
<p class="class">text</p>

PS: добавление querySelectorAll() дает нам возможность работать с IE8+, а обратный цикл уменьшает время выполнения функции в несколько раз


Автор: Илья Кантор, дата: 5 января, 2011 - 00:12
#permalink

Отличный вариант, спасибо.


Автор: Denisko-Redisko, дата: 28 августа, 2011 - 09:31
#permalink

Нельзя использовать в регулярках \bneedle\b, так как christmas-tree-needle это один класс.

<div id="d1">
<p class="par">Текстовый блок НЕ ДОЛЖЕН быть подсвечен</p>
<p class="par-tition">Текстовый блок НЕ ДОЛЖЕН быть подсвечен</p>
<p class="par par1">Текстовый блок должен быть подсвечен</p>
<p class="par asd par1 qwe">Текстовый блок должен быть подсвечен</p>
</div>
<div id="d2">
<p class="par">Текстовый блок НЕ ДОЛЖЕН быть подсвечен</p>
<p class="par-tition">Текстовый блок НЕ ДОЛЖЕН быть подсвечен</p>
<p class="par par1">Текстовый блок должен быть подсвечен</p>
<p class="par asd par1 qwe">Текстовый блок должен быть подсвечен</p>
</div>

<script type="text/javascript">
if (document.getElementsByClassName) {
    getElementsByClass = function(classList, node) {    
        return (node || document).getElementsByClassName(classList)
    }
} else {

    getElementsByClass = function(classList, node) {            
        var node = node || document,
        list = node.getElementsByTagName('*'), 
        length = list.length,
        classArray = classList.split(/\s+/), 
        classes = classArray.length, 
        result = [], i,j
        for(i = 0; i < length; i++) {
            for(j = 0; j < classes; j++)  {
                if(list[i].className.search('\\b' + classArray[j] + '\\b') != -1) {
                    result.push(list[i])
                    break
                }
            }
        }
        return result
    }
}

function findByClass(str, node) {

    node || (node = document);

    if (node.getElementsByClassName) {
        return node.getElementsByClassName(str);
    } else {
        var nodeList = node.getElementsByTagName('*'),
            nodeListIndex = 0,
            classList = (' '+str.split(/\s+/).join(' ; ')+' ').split(';'),
            classListIndex,
            result = [],
            className,
            index;

        while (node = nodeList[nodeListIndex++]) {
            index = 0;
            classListIndex = 0;
            while (className = classList[classListIndex++]) {
                if ((' ' + node.className + ' ').indexOf(className) >= 0) {
                    index++;
                }
            }
            if (index == classList.length) {
                result.push(node);
            }
        }
        return result;
    }
}


var elems = getElementsByClass('par par1', document.getElementById("d1"));
for (var i = 0, len = elems.length; i < len; i++) {
    elems[i].style['color'] = 'red';
}

var elems = findByClass('par par1', document.getElementById("d2"));
for (var i = 0, len = elems.length; i < len; i++) {
    elems[i].style['color'] = 'blue';
}
</script>

Автор: VitAl2013, дата: 2 апреля, 2012 - 08:44
#permalink

В FireFox 11 подсветка не работает.


Автор: chernavin.a.a (не зарегистрирован), дата: 7 февраля, 2011 - 13:44
#permalink

Функция getElementsByClass() работает неверно в IE при поиске узлов с несколькими классами.

<script type="text/javascript">
if(document.getElementsByClassName) {

	getElementsByClass = function(classList, node) {    
		return (node || document).getElementsByClassName(classList)
	}

} else {

	getElementsByClass = function(classList, node) {			
		var node = node || document,
		list = node.getElementsByTagName('*'), 
		length = list.length,  
		classArray = classList.split(/\s+/), 
		classes = classArray.length, 
		result = [], i,j
		for(i = 0; i < length; i++) {
			for(j = 0; j < classes; j++)  {
				if(list[i].className.search('\\b' + classArray[j] + '\\b') != -1) {
					result.push(list[i])
					break
				}
			}
		}
	
		return result
	}
}

		elems=getElementsByClass('par par1');
		for (var i=0;elems.length;i++)
			elems[i].style.color='red';
		</script>

<p class="par">Текстовый блок</p>
<p class="par par1">Текстовый блок под номером два</p>

В FF и Opera будет выделен второй абзац, т.к. используется встроенная функция, а IE выделит оба.


Автор: medium, дата: 2 апреля, 2011 - 17:32
#permalink

8) getElementsByClass()
Все таки не представлен настоящии универсальный метод:(
По моему самый лучшии вариант от monolithed
НО он загружает только 1 класс
Как правильно сделать полный обход?

var classl=getElementsByClass('class1').length;
for (var i=0; i<classl; i++) {
getElementsByClass('class1')[i].style.color='red';
};// пока только так придумал.. подскажите плиз


Автор: Гость (не зарегистрирован), дата: 12 апреля, 2011 - 03:41
#permalink

Я для себя написал вот такой inArray, он работает и для многомерных массивов

Array.prototype.inArray = Array.prototype.indexOf ? function(elem){
		for(var i = 0, len = this.length; i < len; i ++){
			if(this.indexOf(elem) != -1 || (this[i] instanceof Array && this[i].inArray(elem))){
				return true;
			}
		}
		return false;
	} : function(elem){
			for(var i = 0, len = this.length; i < len; i ++){
				if(elem === this[i] || (this[i] instanceof Array && this[i].inArray(elem))){
					return true;
				}
			}
			return false;
		}

Автор: poorking, дата: 12 апреля, 2011 - 04:11
#permalink

Точнее так

Array.prototype.inArray = Array.prototype.indexOf ? function(elem){
		if(this.indexOf(elem) != -1){
			return true;
		}else{
			for(var i = 0, len = this.length; i < len; i ++){
				if(this[i] instanceof Array && this[i].inArray(elem)){
					return true;
				}
			}
		}
		return false;
	} : function(elem){
			for(var i = 0, len = this.length; i < len; i ++){
				if(elem === this[i] || (this[i] instanceof Array && this[i].inArray(elem))){
					return true;
				}
			}
			return false;
		}

Автор: Гость (не зарегистрирован), дата: 8 октября, 2011 - 12:49
#permalink

Ошибка в inArray(), строка 8. вместо a[] надо arr[]


Автор: m4gz, дата: 1 ноября, 2011 - 18:52
#permalink
document.getElementsByClassName = function(cl) {
var retnode = [];
var myclass = new RegExp('\\b'+cl+'\\b');
var elem = this.getElementsByTagName('*');
for (var i = 0; i < elem.length; i++) {
var classes = elem[i].className;
if (myclass.test(classes)) retnode.push(elem[i]);
}
return retnode;
};

GET
CLASS


Автор: Гость (не зарегистрирован), дата: 21 декабря, 2011 - 11:31
#permalink

Как по мне, так такой вариант выборки классов будет побыстрее:

getElementsByClassName = function(klass, root) {
	root = root || document;
	if (root.querySelectorAll) {
		return root.querySelectorAll('.' + klass)
	} else if (root.getElementsByClassName) {
		return root.getElementsByClassName(klass)
	} else {
		var list = root.all || root.getElementsByTagName('*');
		var result = [];
		for (var index = 0,
		elem; elem = list[index++];) {
			if (elem.className && (' ' + elem.className + ' ').indexOf(' ' + klass + ' ') > -1) {
				result[result.length] = elem
			}
		}
		return result
	}
};

Автор: Гость (не зарегистрирован), дата: 16 февраля, 2012 - 16:06
#permalink


Автор: evgh, дата: 17 февраля, 2012 - 15:15
#permalink

мой вариант функции inArray
без цикла, и символов меньше


Автор: WolF™ (не зарегистрирован), дата: 31 марта, 2012 - 13:27
#permalink

А не легче использовать такой код:

document.getElementsByClassName = function (cl) {
     return document.querySelectorAll('.' + cl);
}

Или я чего-то не понимаю?


Автор: Гость (не зарегистрирован), дата: 27 августа, 2012 - 13:05
#permalink

Например, того, что некоторые недобраузеры функции querySelectorAll не понимают.


Автор: C.I.A. (Гость) (не зарегистрирован), дата: 8 сентября, 2012 - 14:48
#permalink

8) getElementsByClass()

if(document.getElementsByClassName){
 /*
 Здесь логика AND:
 getElementsByClassName - ищет строгое соответствие строке classList
 т.е. к элементу должно быть применено class1 && class2
*/
}else{
 /*
 Здесь логика OR:
 разбор строки classList
 т.е. к элементу может быть применено море классов и поиск такой
 class1 || class2
*/
}

Вариант:

if(document.getElementsByClassName){
  var getElementsByClass = function(classList, node){
  var node = node || document,
       classArray = classList.split(/\s+/),
       result=[];
  for(i=0; i<classArray.length; i++){
    j=node.getElementsByClassName(classArray[i]);
    if(j!='undefined'){
     result.push(node.getElementsByClassName(classArray[i]));
    }
  }
  return result;//aray nodes
 }
}else{
// ... для недобраузеров код прежний
}

Автор: KoVaLsKy (не зарегистрирован), дата: 19 октября, 2012 - 13:35
#permalink

Подскажите, пожалуйста setCookie(name, value, props)
как у эту функцию установить время или дату.
я так понимаю что она сидит в props
как задать в него параметры


Автор: Гость (не зарегистрирован), дата: 23 ноября, 2012 - 15:17
#permalink

подскожите пож. как из .csv где есть много строк, наити самыю длиныю строку и выведить её ,при етом показати сколько букв содержит строка и какой ряд?


Автор: Гость (не зарегистрирован), дата: 6 мая, 2013 - 17:51
#permalink

Предлагаю свой вариант работы с классами:

var has_class=function(obj,class_name){	return _has_class.apply(null,arguments); };
	var _has_class=function(obj,class_name){
		
		var hc1=function( obj , class_name ){ return obj.classList.contains(class_name); }
		var hc2=function( obj , class_name ){ class_name = " " + class_name + " "; return ( (' '+obj.className+' ').indexOf(class_name) >= 0 );	}
		
		if( obj.classList ){ _has_class=hc2; }else{	_has_class=hc2;	}		
		hc1=hc2=null;
		return _has_class.apply(null,arguments);
	};
	
	var add_class=function( obj , class_name ){return _add_class.apply(null,arguments); };
	var _add_class=function( obj , class_name ){
		var ac1=function( obj , class_name ){	obj.classList.add(class_name); return this;}			
		var ac2=function( obj , class_name ){
			var re = new RegExp("(^|\\s)" + class_name + "(\\s|$)", "g");
			if (!re.test(obj.className)) {obj.className = (obj.className + " " + class_name).replace(/\s+/g, " ").replace(/(^ | $)/g, "");}
		};
		
		if( obj.classList ){ _add_class=ac1; }else{ _add_class=ac2;	}
		ac1=ac2=null;
		_add_class.apply( null, arguments );
	};
	
	var remove_class=function( obj , class_name ){ return _remove_class.apply(null,arguments); };
	var _remove_class=function( obj , class_name ){
		var rc1=function( obj , class_name ){ obj.classList.remove(class_name); };			
		var rc2=function( obj , class_name ){
			var re = new RegExp("(^|\\s)" + class_name + "(\\s|$)", "g"); obj.className = obj.className.replace(re, "$1").replace(/\s+/g, " ").replace(/(^ | $)/g, "");
		}
		if( obj.classList ){_remove_class=rc1;}else{_remove_class=rc2;}
		rc1=rc2=null;
		remove_class.apply(null,arguments);
	};

Немного сжато, рабочий вариант.
Применен шаблон самоопределяемых функций.
Функции обертки нужны, чтобы иметь возможность правильно импортировать функции из области видимости.

Преимущества: определение пути выполнения осуществляется только один раз, при первом вызове функции, при этом используются возможности HTML5. Нормальные браузеры будут работать еще быстрее (чем в JQuery, но не проверял), не нормальные - на том же уровне.

Немного переживаю за излишнее замыкание, но пошел на наго из-за компактности.

Еще пара функций:

var get_offset=function(elem){ return _get_offset(elem); };
	var _get_offset=function(elem){
	
		var __getOffsetRect=function(elem) {
			var box = elem.getBoundingClientRect();
			var body = document.body;
			var docElem = document.documentElement;
			var scrollTop = window.pageYOffset || docElem.scrollTop || body.scrollTop;
			var scrollLeft = window.pageXOffset || docElem.scrollLeft || body.scrollLeft;
			var clientTop = docElem.clientTop || body.clientTop || 0;
			var clientLeft = docElem.clientLeft || body.clientLeft || 0;
			var top  = box.top +  scrollTop - clientTop;
			var left = box.left + scrollLeft - clientLeft;
			return { top: Math.round(top), left: Math.round(left) };
		};
		
		var __getOffsetSum=function(elem) {
			var top=0, left=0;
			while(elem) {top = top + parseInt(elem.offsetTop);left = left + parseInt(elem.offsetLeft);elem = elem.offsetParent ;}
			return {top: top, left: left};
		};
	
		if (elem.getBoundingClientRect) { _get_offset=__getOffsetRect; } else { _get_offset=__getOffsetSum; }
		
		__getOffsetRect=__getOffsetSum=null;
		
		return _get_offset(elem);
	};
	
	var fix_event=function(e){ return _fix_event(e); };
	var _fix_event=function(e){
		var __fix_event_ie=function(e){	
			e = e || window.event;
			var html = document.documentElement;
			var body = document.body;
			e.pageX = e.clientX + (html && html.scrollLeft || body && body.scrollLeft || 0) - (html.clientLeft || 0);
			e.pageY = e.clientY + (html && html.scrollTop || body && body.scrollTop || 0) - (html.clientTop || 0);
			if (e.button & 1) { e.which = 1; } else if (e.button & 4) { e.which = 2; } else if (e.button & 2) {e.which = 3;}
			e.target=e.srcElement;
			return e;
		};
		var __fix_event_html5=function(e){ return e; };
		e = e || window.event;
		if( e.pageX == null && e.clientX != null ){ _fix_event=__fix_event_ie; }else{ _fix_event=__fix_event_html5; }
		__fix_event_ie=__fix_event_html5=null;
		return _fix_event(e);
	};

Автор: psyhonaut (не зарегистрирован), дата: 8 декабря, 2013 - 19:42
#permalink

Добрый день.

Не могу разобраться с клонированием картинок при перетаскивании. Можете направить где копать?


Автор: Гость (не зарегистрирован), дата: 10 декабря, 2014 - 15:40
#permalink

addClass
Какая-то стрёмная замена classList.add()


Автор: Glor (не зарегистрирован), дата: 18 марта, 2015 - 17:18
#permalink

function insertAfter(parent, node, referenceNode) {
parent.insertBefore(node, referenceNode.nextSibling);
}

И где тут проверка, что это не младший сын?


Автор: Seitbekir (не зарегистрирован), дата: 9 сентября, 2015 - 18:13
#permalink

Эти приемы слишком не соответствуют сути прототипно-ориентированного языка.

Почему бы не myObject.addEvent?

как де queryString?

Где демонстрация работы с динамическими элементами?

Да, порой фреймворк использовать не получается (покажите мне такой, в ЛС), но это плохой подход.

ПС: Кину свою мини-библиотеку нужнрых мне порой функций.

Array.prototype.last = function(){ return this[this.length - 1]; }
Array.prototype.unique = function(){
   var u = {}, a = [];
   for(var i = 0, l = this.length; i < l; ++i){
      if(u.hasOwnProperty(this[i])) {
         continue;
      }
      a.push(this[i]);
      u[this[i]] = 1;
   }
   return a;
}
Array.prototype.remove = function(i){ this.splice(i, 1); }

String.prototype.times = function(n){
	var s = '';
	for (var i = 0; i < n; i++){ s += this; }
	return s;
}
ObjLength = function(obj) { if(typeof(obj) != "object") return null; var n = 0; for(var i in obj){ n++; } return n; }
String.prototype.zp = function(n) { return '0'.times(n - this.length) + this; }
Number.prototype.zp = function(n) { return this.toString().zp(n); }
String.prototype.zt = function(n) { return this + '0'.times(n - this.length); } 
Number.prototype.zt = function(n) { return this.toString().zt(n); }

String.prototype.toInt = function() { return parseInt(this); }
String.prototype.toFloat = function() { return parseFloat(this); }
String.prototype.toNumber = function() { return parseFloat(this); }
Number.prototype.toInt = function() { return parseInt(this); }
Number.prototype.toFloat = function() { return parseFloat(this); }
Number.prototype.toNumber = function() { return parseFloat(this); }

Date.prototype.daysInMonth = function() {
	return 33 - new Date(this.getFullYear(), this.getMonth(), 33).getDate();
};

HTMLElement.prototype.remove = function(){ if(this.parentNode != null) this.parentNode.removeChild(this); else delete(this); }
HTMLElement.prototype.insertAfter = function(elem){ this.parentNode.insertBefore(elem, this.nextSibling); }
HTMLElement.prototype.replace = function(elem){ this.parentNode.insertBefore(elem, this.nextSibling); this.remove(); }

var webStore = 
{
	setItem: function (name, object)
		{
			localStorage.setItem(name, JSON.stringify(object))
		},
	getItem: function (name)
		{
			return JSON.parse(localStorage.getItem(name))
		},
	clear: function (name)
		{
			localStorage.clear()
		}
}

ПС2: Пользуйтесь jQ, Angular, polymer и все будет в порядке.


Автор: Гость (не зарегистрирован), дата: 14 января, 2017 - 07:07
#permalink

onReady() дала течь. Вернулся к windows.onload

onReady(function () {
	var out = document.getElementById('out');
	var n7 = getElementsByClass('n7')[0];
	var fff = getComputedStyle(n7);

	//Выводит ложные данные!
	out.innerHTML = n7.offsetTop + '<br>';
	out.innerHTML += fff.width;
});

Автор: dzn, дата: 5 мая, 2017 - 11:24
#permalink

А jQuery использовать мешает высокомерие - мы же крутые JS-разработчики а не х.пойми что )))


Автор: Гость (не зарегистрирован), дата: 11 апреля, 2018 - 12:03
#permalink

K;/K//LK/L


Автор: Гость (не зарегистрирован), дата: 4 октября, 2018 - 12:51
#permalink

Функции полезные, но можно использовать jQuery и разрабатывать на Javascript еще быстрее и эффективнее.


Автор: Bullet (не зарегистрирован), дата: 27 августа, 2019 - 09:26
#permalink

Поэтому, без лишних вступлений, вот список из десяти, по моему мнению, величайших пользовательских функций на JavaScript, которые используются в настоящее время.
bullet force game online.


Автор: Patsy J. Moore (не зарегистрирован), дата: 10 октября, 2019 - 12:28
#permalink

it's been so long since I last read such a favorable article... clash royale


Автор: Гость (не зарегистрирован), дата: 11 ноября, 2019 - 04:27
#permalink

Nice


Автор: osama skh (не зарегистрирован), дата: 1 февраля, 2020 - 16:55
#permalink

I have read your blog it is very helpful for me. I want to say thanks to you. I have bookmark your site for future updates.
translated from spanish


Автор: Гость (не зарегистрирован), дата: 22 февраля, 2020 - 15:53
#permalink

Some truly wonderful work on behalf of the owner of this internet site , perfectly great articles .
high blood pressure


Автор: Гость (не зарегистрирован), дата: 21 марта, 2020 - 06:11
#permalink

Great article. It helps a lot for my work. Thanks for sharing the effective and helpful ways.
mapquest directions


Автор: limdi (не зарегистрирован), дата: 14 апреля, 2020 - 07:06
#permalink

This is a great thing, I think everyone feels this information is very valuable, thank you happy wheels


Автор: Гость (не зарегистрирован), дата: 4 июня, 2020 - 07:10
#permalink

Useless


Автор: Гость (не зарегистрирован), дата: 9 сентября, 2020 - 18:46
#permalink

Wow the blog you give us is amazing, no wonder many people want to read this. https://celebrityinsider.org/


Автор: Гость (не зарегистрирован), дата: 9 сентября, 2020 - 18:48
#permalink

I will recomend this blog to all of my friends. Great article.
https://happygamer.com/


Автор: Гость (не зарегистрирован), дата: 9 сентября, 2020 - 18:49
#permalink

Thank you for this inspiring blog. I wait for more
https://ballstepded.com/


Автор: Гость (не зарегистрирован), дата: 9 сентября, 2020 - 18:50
#permalink

I learned so much from this blog. Good inforamtion. https://fixoserror.com/


Автор: Гость (не зарегистрирован), дата: 9 сентября, 2020 - 18:50
#permalink

I wait for more.Great article.
https://premiereretail.com


Автор: Гость (не зарегистрирован), дата: 9 сентября, 2020 - 18:51
#permalink

I stumbled across this blog.Great article. https://tecsprint.com


Автор: Гость (не зарегистрирован), дата: 9 сентября, 2020 - 18:52
#permalink

Thank you for this amazing blog. Congratulations.
https://howtolose10poundsinaweek.com


Автор: Гость (не зарегистрирован), дата: 9 сентября, 2020 - 18:52
#permalink

The things i see here are very informative. Keep going. https://bargainistafashionista.com


Автор: Гость (не зарегистрирован), дата: 9 сентября, 2020 - 18:52
#permalink

I can say that is one of the best articles out on the internet. https://bankncard.com


Автор: Гость (не зарегистрирован), дата: 9 сентября, 2020 - 18:53
#permalink

I readed all the article. So informative https://vhan.net


Автор: Гость (не зарегистрирован), дата: 10 сентября, 2020 - 16:21
#permalink

This is one of the best sites i have found on the internet until now. Nice article keep going.
https://millikenconstructioninc.com/


Автор: Гость (не зарегистрирован), дата: 11 сентября, 2020 - 16:15
#permalink

Thanks for the information, very clear and simple. I will try to use it.Love the way you write. Working my way through your article links
https://vvhen.to/


Автор: Гость (не зарегистрирован), дата: 15 сентября, 2020 - 12:09
#permalink

This is one of the best articles i found on the blogs around the internet. I am really interested in seeing more of this. Keep going with the great work!
https://gzgjskpzz1m.ga


Автор: Гость (не зарегистрирован), дата: 19 сентября, 2020 - 10:56
#permalink

First of all ,you have picked a very unique theme . I think i might design something similar for a future project that i want to build .
On top of that ,i in truth enjoy most of your content pieces and your different point of view.
Thank you https://seoconsultants24.blogspot.com/


Автор: Гость (не зарегистрирован), дата: 19 сентября, 2020 - 11:34
#permalink

Nice information, many thanks to the author. It is incomprehensible to me now, but in general, the usefulness and significance is overwhelming.https://seokarma24.blogspot.com/


Автор: Гость (не зарегистрирован), дата: 19 сентября, 2020 - 15:20
#permalink

I have reviewed the article many times and I find it very impressive. The information is extremely useful especially the last part I care about that information very much. I have been looking for this certain information for a long time.
https://packseo.blogspot.com/


Автор: Гость (не зарегистрирован), дата: 23 сентября, 2020 - 16:58
#permalink

I’m gone to tell my little brother, that he should
also pay a quick visit this blog on regular basis to take updated from hottest information.
https://connectorseo.blogspot.com/


Автор: Гость (не зарегистрирован), дата: 23 сентября, 2020 - 17:06
#permalink

You have made some really good points there. I looked on the web to find out
more about the issue and found most individuals will go along with your views on this website
https://digitalseo24h.blogspot.com/


Автор: Гость (не зарегистрирован), дата: 23 сентября, 2020 - 17:13
#permalink

Fantastic blog! Do you have any helpful hints for aspiring writers?
I’m hoping to start my own site soon but I’m a little lost on everything.
https://sweetseo24h.blogspot.com/


Автор: Гость (не зарегистрирован), дата: 23 сентября, 2020 - 18:16
#permalink

I am hoping the same best effort from you in the future as well. In fact your creative writing skills has inspired me.
https://fancyseo24h.blogspot.com/


Автор: Гость (не зарегистрирован), дата: 29 сентября, 2020 - 16:25
#permalink

You have made some really good points there. I looked on the web to find out
more about the issue and found most individuals will go along with your views on this website
https://phoenixseogeek.com/


Автор: Гость (не зарегистрирован), дата: 1 октября, 2020 - 21:56
#permalink

Nice information, many thanks to the author. It is incomprehensible to me now, but in general, the usefulness and significance is overwhelming.
https://zgjskpzz1m.ga/


Автор: 먹튀검증 (не зарегистрирован), дата: 14 ноября, 2020 - 17:26
#permalink

Some genuinely interesting information, well written and broadly user pleasant 먹튀검증


Автор: 대출 (не зарегистрирован), дата: 14 ноября, 2020 - 17:27
#permalink

I saw two other comparable posts although yours was the most beneficial so a lot 대출


Автор: 안전놀이터 (не зарегистрирован), дата: 3 декабря, 2020 - 07:42
#permalink

That's a really good article. I'm so happy to read this. What you wrote was very helpful to me.Thank you. When did you start uploading these posts? That's amazing. Actually, I upload articles often like 안전한놀이터, but it is quite difficult to upload quality content like you. If you have time, could you visit my 안전놀이터?


Автор: 안전놀이터 (не зарегистрирован), дата: 3 декабря, 2020 - 07:42
#permalink

What kind of article do you like?? If someone asks, they will say that they like the article related to 안전놀이터 just like your article. If you are interested in my writing, please visit 메이저놀이터!!


Автор: 안전놀이터 (не зарегистрирован), дата: 3 декабря, 2020 - 07:42
#permalink

Your post is very interesting to me. I had so much fun reading. I do a similar kind of posting. Please visit my site once. The site name Is 안전놀이터.In general, there are a lot of materials related to 토토커뮤니티. If you have time, please visit my site 토토커뮤니티사이트!


Автор: 안전놀이터 (не зарегистрирован), дата: 3 декабря, 2020 - 07:42
#permalink

I've never read this kind of story before 안전놀이터. What a great story! I read it really interestingly.As much as I find it interesting, I think you can be impressed with my 토토커뮤니티. My site name is 토토커뮤니티사이트. Please visit!!


Автор: Гость (не зарегистрирован), дата: 10 декабря, 2020 - 20:10
#permalink

This is highly information, crisp and clear. You have a way of writing compelling information that sparks much interest.
https://larkenequity.com/ https://larkenequity.com//


Автор: Гость (не зарегистрирован), дата: 14 декабря, 2020 - 17:18
#permalink

Wow very good post, please dont stop posting things like this because ie really enjoy this
https://hrma-llc.com/
https://hrma-llc.com/


Автор: Гость (не зарегистрирован), дата: 14 декабря, 2020 - 17:33
#permalink

You are a very persuasive writer. I can see this in your article. You have a way of writing compelling information that sparks much interest.
https://nuestropsicologoenmadrid.com/
https://nuestropsicologoenmadrid.com/


Автор: Гость (не зарегистрирован), дата: 14 декабря, 2020 - 18:16
#permalink

I wish more authors of this type of content Wow.!This is highly information, crisp and clear. You have a way of writing compelling information that sparks much interest.!!!
https://cremationconsultancy.com/ https://cremationconsultancy.com//


Автор: Гость (не зарегистрирован), дата: 14 декабря, 2020 - 18:52
#permalink

This is very educational content and written well for a change. It's nice to see that some people still understand how to write a quality post!
https://i-repaircenter.nl/
https://i-repaircenter.nl/


Автор: Гость (не зарегистрирован), дата: 14 декабря, 2020 - 20:21
#permalink

I really thank you for the valuable info on this great subject and look forward to more great posts. Thanks a lot for enjoying this beauty article with me.
https://zoekmachineservices.nl/
https://zoekmachineservices.nl/


Автор: DouglasMRafferty (не зарегистрирован), дата: 15 декабря, 2020 - 03:16
#permalink

I have a bookmark you look at your new things.


Автор: DouglasMRafferty (не зарегистрирован), дата: 15 декабря, 2020 - 03:16
#permalink

I have a bookmark you look at your new things.


Автор: DouglasMRafferty (не зарегистрирован), дата: 15 декабря, 2020 - 03:16
#permalink

I have a bookmark you look at your new things.


Автор: Гость (не зарегистрирован), дата: 15 декабря, 2020 - 16:09
#permalink

I do not know what to say really what you share very well and useful to the community, I feel that it makes our community much more developed
https://hetonderdelenhuis-emmen.nl/ https://hetonderdelenhuis-emmen.nl/


Автор: Гость (не зарегистрирован), дата: 15 декабря, 2020 - 16:28
#permalink

This is very educational content and written well for a change. It's nice to see that some people still understand how to write a quality post!
https://casinoonline-bet.com/
https://casinoonline-bet.com/


Автор: Гость (не зарегистрирован), дата: 15 декабря, 2020 - 16:40
#permalink

Great post! I am actually getting ready to across this information, is very helpful my friend. Also great blog here with all of the valuable information you have. Keep up the good work you are doing here
https://restorationdoctorva.com/
https://restorationdoctorva.com/


Автор: Гость (не зарегистрирован), дата: 15 декабря, 2020 - 17:49
#permalink

You are a very persuasive writer. I can see this in your article. You have a way of writing compelling information that sparks much interest.
https://fixoserror.com/
https://fixoserror.com/


Автор: Гость (не зарегистрирован), дата: 16 декабря, 2020 - 18:21
#permalink

Wow very good post, please dont stop posting things like this because ie really enjoy this
https://vvhen.to/
https://vvhen.to/


Автор: Гость (не зарегистрирован), дата: 16 декабря, 2020 - 21:24
#permalink

You are a very persuasive writer. I can see this in your article. You have a way of writing compelling information that sparks much interest.
https://millikenconstructioninc.com/
https://millikenconstructioninc.com/


Автор: Гость (не зарегистрирован), дата: 21 декабря, 2020 - 17:25
#permalink

You are a very persuasive writer. I can see this in your article. You have a way of writing compelling information that sparks much interest.
https://findcosmeticsurgeons.net/
https://findcosmeticsurgeons.net/


Автор: Гость (не зарегистрирован), дата: 21 декабря, 2020 - 18:52
#permalink

I high appreciate this post. It’s hard to find the good from the bad sometimes, but I think you’ve nailed it!
https://safetytechnology.com
https://safetytechnology.com


Автор: Гость (не зарегистрирован), дата: 21 декабря, 2020 - 18:53
#permalink

I loved your post so much I became a fan of you, promise that you will continue to share such good and knowledgeable posts even further, we will be waiting for your post thank you.
https://bestpestcontrolservices.com.au
https://bestpestcontrolservices.com.au


Автор: Гость (не зарегистрирован), дата: 22 декабря, 2020 - 18:46
#permalink

It is wonderful to be here with everyone, I have a lot of knowledge from what you share, to say thank you, the information and knowledge here helps me a lot
https://bankncard.com/
https://bankncard.com/


Автор: Гость (не зарегистрирован), дата: 22 декабря, 2020 - 19:12
#permalink

Thank you so much for sharing this great blog.Very inspiring and helpful too.Hope you continue to share more of your ideas.I will definitely love to read.
https://bargainistafashionista.com/
https://bargainistafashionista.com/


Автор: Гость (не зарегистрирован), дата: 22 декабря, 2020 - 19:24
#permalink

Your information was very useful to me. That's exactly what I've been looking for
https://howtolose10poundsinaweek.com/
https://howtolose10poundsinaweek.com/


Автор: Гость (не зарегистрирован), дата: 22 декабря, 2020 - 19:42
#permalink

This is very educational content and written well for a change. It's nice to see that some people still understand how to write a quality post.!
https://tecsprint.com/
https://tecsprint.com/


Автор: Гость (не зарегистрирован), дата: 22 декабря, 2020 - 19:56
#permalink

Excellent article. Very interesting to read. I really love to read such a nice article. Thanks! keep rocking.
https://premiereretail.com/
https://premiereretail.com/


Автор: Гость (не зарегистрирован), дата: 22 декабря, 2020 - 23:50
#permalink

The post is written in very a good manner and it contains many useful information for me.
https://happygamer.com/
https://happygamer.com/


Автор: Гость (не зарегистрирован), дата: 24 декабря, 2020 - 21:08
#permalink

Now with coronavirus is really interesting to read things liek this on the internet when you stay at home
https://closetsphoenix.com/
https://closetsphoenix.com/


Автор: Гость (не зарегистрирован), дата: 24 декабря, 2020 - 22:01
#permalink

Wow very good post, please dont stop posting things like this because ie really enjoy this
https://caboplatinum.com/
https://caboplatinum.com/


Автор: Гость (не зарегистрирован), дата: 25 декабря, 2020 - 15:05
#permalink

Thank you so much for sharing this great blog.Very inspiring and helpful too.Hope you continue to share more of your ideas.I will definitely love to read.
https://zacjohnson.com/
https://zacjohnson.com/


Автор: Гость (не зарегистрирован), дата: 25 декабря, 2020 - 15:27
#permalink

Excellent article. Very interesting to read. I really love to read such a nice article. Thanks! keep rocking.
https://blogreign.com/
https://blogreign.com/


Автор: Гость (не зарегистрирован), дата: 25 декабря, 2020 - 17:39
#permalink

The post is written in very a good manner and it contains many useful information for me.
https://blogging.org/
https:https://blogging.org/


Автор: Гость (не зарегистрирован), дата: 25 декабря, 2020 - 17:47
#permalink

Very inspiring and helpful
https://blogninja.com/
https://blogninja.com/


Автор: Гость (не зарегистрирован), дата: 25 декабря, 2020 - 18:23
#permalink

This is very educational content and written well for a change. It's nice to see that some people still understand how to write a quality post.!
https://phoenixseogeek.com/
https://phoenixseogeek.com/


Автор: Гость (не зарегистрирован), дата: 26 декабря, 2020 - 15:34
#permalink

Thank you for such a well written article. It’s full of insightful information and entertaining descriptions. Your point of view is the best among many.
https://extremevaporizers.com/
https://extremevaporizers.com/


Автор: Гость (не зарегистрирован), дата: 26 декабря, 2020 - 15:56
#permalink

this is really nice to read..informative post is very good to read..thanks a lot!
https://usemybee.com/
https://usemybee.com/


Автор: osama shk (не зарегистрирован), дата: 28 декабря, 2020 - 11:27
#permalink

Thank you for another great article. Where else could anyone get that kind of information in such a perfect way of writing? I have a presentation next week, and I am on the look for such information.
go here


Автор: Гость (не зарегистрирован), дата: 28 декабря, 2020 - 15:45
#permalink

Now with coronavirus is really interesting to read things liek this on the internet when you stay at home
https://spacnetwork.com/
https://spacnetwork.com/


Автор: Гость (не зарегистрирован), дата: 1 января, 2021 - 22:45
#permalink

As a self-proclaimed movie buff, I am just going to say that I love movies no matter what but when it comes to this specific movie, I really am having a hard time loving it. I mean the acting, the plot, and the entire movie as a whole is downright awful. I mean, I would not even have my worst enemy watch this flick ever. I don’t even know where to begin when reviewing this movie because it is just bad. Even if you bundle this with a download リンク for that new roblox pc, I still would not recommend this to the public.


Автор: Гость (не зарегистрирован), дата: 2 января, 2021 - 13:33
#permalink

This new high-powered laser pointer is going to be very useful for my presentations. This way, I don’t have to go to the other side of the board to point out a topic or a line on the slide that is worthy to be noted by the students. This is going to ease all of my presentations for the rest of the semester and I don’t have to keep walking back and forth across the classroom just to point out a single line or topic on the slides. Also, this new game more like this is way better after you play new horror game because the contrast is so jarring that anything after that game is so much better.


Автор: osama shk (не зарегистрирован), дата: 6 января, 2021 - 15:48
#permalink

Superbly written article, if only all bloggers offered the same content as you, the internet would be a far better place..
binary options brokers


Автор: osama shk (не зарегистрирован), дата: 7 января, 2021 - 17:21
#permalink

I can see that you are an expert at your field! I am launching a website soon, and your information will be very useful for me.. Thanks for all your help and wishing you all the success in your business.
covid quintana roo


Автор: Гость (не зарегистрирован), дата: 7 января, 2021 - 17:41
#permalink

Very interesting discussion glad that I came across such informative post. Keep up the good work friend
https://pestcontrolcanberraarea.com.au
https://pestcontrolcanberraarea.com.au


Автор: Гость (не зарегистрирован), дата: 12 января, 2021 - 22:20
#permalink

I do not know what to say really what you share very well and useful to the community, I feel that it makes our community much more developed
https:https://emergencydental247.com/ https://emergencydental247.com/o/


Автор: Гость (не зарегистрирован), дата: 12 января, 2021 - 22:21
#permalink

It’s hard to find the good from the bad sometimes, but I think you’ve nailed it!
audigitalsolutions.com
audigitalsolutions.com


Автор: Гость (не зарегистрирован), дата: 12 января, 2021 - 22:25
#permalink

Great website and the content you shared is very informational and useful.
https://microjobs24.de https://microjobs24.de


Автор: osama shk (не зарегистрирован), дата: 13 января, 2021 - 14:31
#permalink

Thanks for taking the time to discuss this, I feel strongly about it and love learning more on this topic.
digital marketing


Автор: osama shk (не зарегистрирован), дата: 19 января, 2021 - 11:25
#permalink

Very nice article, I enjoyed reading your post, very nice share, I want to twit this to my followers. Thanks!.
Canon DSLR Camera LUT


Автор: Гость (не зарегистрирован), дата: 22 января, 2021 - 19:42
#permalink

It is wonderful to be here with everyone, I have a lot of knowledge from what you share, to say thank you, the information and https://audigitalsolutions.com/
https://audigitalsolutions.com/


Автор: Гость (не зарегистрирован), дата: 27 января, 2021 - 12:36
#permalink

Now with coronavirus is really interesting to read things liek this on the internet when you stay at home
https://plasticpalletsales.com
https://plasticpalletsales.com


Автор: Гость (не зарегистрирован), дата: 27 января, 2021 - 17:25
#permalink

I have bookmarked your blog, the articles are way better than other similar blogs.. thanks for a great blog!
https://megabonuscasino.nl/
https://megabonuscasino.nl/


Автор: Гость (не зарегистрирован), дата: 28 января, 2021 - 15:31
#permalink

Excellent article. Very interesting to read. I really love to read such a nice article. Thanks! keep rocking.
https://entutorado.com/
https://entutorado.com/


Автор: shemale graz (не зарегистрирован), дата: 29 января, 2021 - 17:46
#permalink

Free sexy chat with hot young local shemales - shemale graz! Visit right now!


Автор: osama shk (не зарегистрирован), дата: 1 февраля, 2021 - 16:50
#permalink

Superbly written article, if only all bloggers offered the same content as you, the internet would be a far better place..
tulum ruins


Автор: osama shk (не зарегистрирован), дата: 3 февраля, 2021 - 12:01
#permalink

I know your expertise on this. I must say we should have an online discussion on this. Writing only comments will close the discussion straight away! And will restrict the benefits from this information.
schlüsseldienst in köln


Автор: osama shk (не зарегистрирован), дата: 4 февраля, 2021 - 17:47
#permalink

I know your expertise on this. I must say we should have an online discussion on this. Writing only comments will close the discussion straight away! And will restrict the benefits from this information.
ساختمان هوشمند


Автор: hausfrau sex basel (не зарегистрирован), дата: 4 февраля, 2021 - 18:00
#permalink

check out the most amazing ladies on hausfrau sex basel and enjoy hot chat


Автор: Гость (не зарегистрирован), дата: 10 февраля, 2021 - 14:31
#permalink

Hey there, You have done a fantastic job. I will definitely digg it and personally recommend to my friends. I am confident they'll be benefited from this website.
https://atlanticflagpole.com
https://atlanticflagpole.com


Автор: Гость (не зарегистрирован), дата: 12 февраля, 2021 - 19:24
#permalink

I appreciate, lead to I found just what I used to be taking a look for. You've ended my four day lengthy hunt! God Bless you man. Have a nice day. Bye
https://gold4vanilla.com/
https://gold4vanilla.com/


Автор: osama shk (не зарегистрирован), дата: 13 февраля, 2021 - 18:28
#permalink

Thanks for taking the time to discuss this, I feel strongly about it and love learning more on this topic.
cozumel


Автор: Гость (не зарегистрирован), дата: 18 февраля, 2021 - 13:04
#permalink

It is appropriate time to make a few plans for the future and it's time to be happy. I've learn this publish and if I may just I want to counsel you some attention-grabbing things or tips. Maybe you could write subsequent articles regarding this article. I wish to learn even more issues approximately it!
https://schmidtchristmasmarket.com/
https://schmidtchristmasmarket.com/


Автор: osama shk (не зарегистрирован), дата: 18 февраля, 2021 - 13:16
#permalink

I know your expertise on this. I must say we should have an online discussion on this. Writing only comments will close the discussion straight away! And will restrict the benefits from this information.
teljes körű pályázatírás Debrecen


Автор: Гостьsad (не зарегистрирован), дата: 21 февраля, 2021 - 19:10
#permalink

this is really nice to read..informative post is very good to read..thanks a lot!
cheap smm panel


Автор: Гость (не зарегистрирован), дата: 23 февраля, 2021 - 13:43
#permalink

Attractive component of content. I just stumbled upon your weblog and in accession capital to say that I acquire actually enjoyed account your weblog posts. Any way I will be subscribing in your feeds or even I achievement you get admission to consistently fast.
https://whispersandhoney.com/
https://whispersandhoney.com/


Автор: osama shk (не зарегистрирован), дата: 24 февраля, 2021 - 14:36
#permalink

This is just the information I am finding everywhere. Thanks for your blog, I just subscribe your blog. This is a nice blog..
rumah pintar


Автор: 먹튀검증 (не зарегистрирован), дата: 1 марта, 2021 - 09:39
#permalink

The assignment submission period was over and I was nervous, 먹튀검증 and I am very happy to see your post just in time and it was a great help. Thank you ! Leave your blog address below. Please visit me anytime.


Автор: osama shk (не зарегистрирован), дата: 2 марта, 2021 - 15:54
#permalink

Thanks for taking the time to discuss this, I feel strongly about it and love learning more on this topic.
mobilház szállítás ajánlat


Автор: Гость (не зарегистрирован), дата: 3 марта, 2021 - 12:24
#permalink

Hi I am so delighted I found your webpage, I really found you by mistake, while I was browsing on Bing for something else, Anyhow I am here now and would just like to say many thanks for a remarkable post and a all round enjoyable blog (I also love the theme/design), I don’t have time to go through it all at the minute but I have bookmarked it and also included your RSS feeds, so when I have time I will be back to read much more, Please do keep up the excellent work.
https://eureka-examens.nl/
https://eureka-examens.nl/


Автор: Гость (не зарегистрирован), дата: 3 марта, 2021 - 12:36
#permalink

Hello, i believe that i noticed you visited my weblog so i came to return the favor?.I'm attempting to in finding issues to improve my web site!I suppose its adequate to make use of some of your ideas!!
https://cbtresultaatuitopleiden.nl/
https://cbtresultaatuitopleiden.nl/


Автор: kim chiimg (не зарегистрирован), дата: 9 марта, 2021 - 11:41
#permalink

Thanks for the very helpful post, I really liked it
resize image


Автор: osama shk (не зарегистрирован), дата: 4 апреля, 2021 - 17:55
#permalink

I can see that you are an expert at your field! I am launching a website soon, and your information will be very useful for me.. Thanks for all your help and wishing you all the success in your business.
unique bathroom vanity


Автор: osama shk (не зарегистрирован), дата: 13 апреля, 2021 - 11:35
#permalink

All the contents you mentioned in post is too good and can be very useful. I will keep it in mind, thanks for sharing the information keep updating, looking forward for more posts.Thanks
covid cozumel


Автор: osama shk (не зарегистрирован), дата: 16 апреля, 2021 - 13:29
#permalink

This article gives the light in which we can observe the reality. This is very nice one and gives in depth information. Thanks for this nice article.
Hualien covid


Автор: Гость온라인홀덤 (не зарегистрирован), дата: 18 апреля, 2021 - 09:53
#permalink

In the meantime, I wondered why I couldn't think of the answer to this simple problem like this. Your article is an article that gives the answer to all the content I've been contemplating. 온라인홀덤


Автор: 토토사이트 (не зарегистрирован), дата: 5 мая, 2021 - 12:37
#permalink

I’m thinking some of my readers might find a bit of this interesting. Do you mind if I post a clip from this and link back? Thanks 토토사이트


Автор: kitty durgans (не зарегистрирован), дата: 7 мая, 2021 - 04:58
#permalink

I really love to read such a nice article. Thanks! keep rocking. cookie clicker slope unblocked


Автор: Sexcams Onlinesex (не зарегистрирован), дата: 14 мая, 2021 - 18:00
#permalink

If you are looking for cam contacts in EU check out the best web platform right now Sexcams Onlinesex


Автор: 토토사이트 (не зарегистрирован), дата: 24 мая, 2021 - 05:36
#permalink

Excellent read, I just passed this onto a friend who was doing a little research on that. And he actually bought me lunch as I found it for him smile Therefore let me rephrase that: Thank you for lunch. 토토사이트


Автор: sluts south england (не зарегистрирован), дата: 29 июня, 2021 - 16:19
#permalink

sluts south england is the most popular web place for free sexy chat with local ladies in UK


Автор: Agnes Stokes (не зарегистрирован), дата: 27 июля, 2021 - 15:37
#permalink

Thank you for sharing you can cinema hd app download here to watch the best and latest movies in theaters


Автор: 사설토토사이트 (не зарегистрирован), дата: 3 августа, 2021 - 06:38
#permalink

I'm glad I found this web site, I couldn't find any knowledge on this matter prior to.Also operate a site and if you are ever interested in doing some visitor writing for me if possible feel free to let me know, im always look for people to check out my web site 사설토토사이트


Автор: 안전사이트 (не зарегистрирован), дата: 23 августа, 2021 - 10:38
#permalink

Good day! This post could not be written any better! Reading this post reminds me of my previous room mate! He always kept chatting about this. I will forward this page to him. Pretty sure he will have a good read. Thanks for sharing. 안전사이트


Автор: Гостьasa (не зарегистрирован), дата: 30 августа, 2021 - 12:15
#permalink

Nice to be visiting your blog again, it has been months for me. Well this article that i've been waited for so long. I need this article to complete my assignment in the college, and it has same topic with your article. Thanks, great share.
롤듀오


Автор: farhan (не зарегистрирован), дата: 31 августа, 2021 - 21:12
#permalink

I am definitely enjoying your website. You definitely have some great insight and great stories.

구글상위노출


Автор: fave fave (не зарегистрирован), дата: 2 сентября, 2021 - 19:21
#permalink

Nice blog and absolutely outstanding. You can do something much better but i still say this perfect.Keep trying for the best.
서버모아


Автор: 안전놀이터모음 (не зарегистрирован), дата: 8 сентября, 2021 - 07:32
#permalink

What a nice post! I'm so happy to read this. 안전놀이터모음 What you wrote was very helpful to me. Thank you. Actually, I run a site similar to you. If you have time, could you visit my site? Please leave your comments after reading what I wrote. If you do so, I will actively reflect your opinion. I think it will be a great help to run my site. Have a good day.


Автор: jogazy jogazy (не зарегистрирован), дата: 14 сентября, 2021 - 17:23
#permalink

I recently came across your blog and have been reading along. I thought I would leave my first comment. I don't know what to say except that I have enjoyed reading. Nice blog. I will keep visiting this blog very often.
유흥사이트


Автор: Гостьsd (не зарегистрирован), дата: 30 сентября, 2021 - 20:07
#permalink

Thanks for your insight for your fantastic posting. I’m glad I have taken the time to see this.
롤강의


Автор: Гость (не зарегистрирован), дата: 5 октября, 2021 - 13:19
#permalink

Merely a smiling visitant here to share the love (:, btw outstanding style.
레플리카


Автор: Гостьsd (не зарегистрирован), дата: 7 октября, 2021 - 15:48
#permalink

Interesting post. I Have Been wondering about this issue, so thanks for posting. Pretty cool post.It 's really very nice and Useful post.Thanks
레플리카사이트


Автор: john bond (не зарегистрирован), дата: 11 октября, 2021 - 17:03
#permalink

You have done a great job on this article. It’s very readable and highly intelligent. You have even managed to make it understandable and easy to read. You have some real writing talent. Thank you.
출장마사지


Автор: 먹튀검증 (не зарегистрирован), дата: 16 октября, 2021 - 13:02
#permalink

Your ideas have inspired me a lot. I want to learn your writing skills. There is also a website. Please visit us and leave your comments. Thank you. 먹튀검증


Автор: Гость (не зарегистрирован), дата: 20 октября, 2021 - 22:28
#permalink

This type of message always inspiring and I prefer to read quality content, so happy to find good place to many here in the post, the writing is just great, thanks for the post.
leilao imoveis


Автор: Гость (не зарегистрирован), дата: 21 октября, 2021 - 04:34
#permalink

thanks for sharing visit:


Автор: Гость (не зарегистрирован), дата: 23 октября, 2021 - 16:50
#permalink

I am unable to read articles online very often, but I’m glad I did today. This is very well written and your points are well-expressed. Please, don’t ever stop writing.
강남오피


Автор: Гость (не зарегистрирован), дата: 26 октября, 2021 - 08:17
#permalink

I just couldn't leave your website before telling you that I truly enjoyed the top quality info you present to your visitors? Will be back again frequently to check up on new posts.
custom laptop brands


Автор: sas (не зарегистрирован), дата: 29 октября, 2021 - 11:43
#permalink

I found a web page that contains the photos and videos you want. Hyperlink 토토사이트


Автор: winterthur sex (не зарегистрирован), дата: 3 ноября, 2021 - 17:19
#permalink

winterthur sex is the best web platform for casual contacts with young ladies in EU check out and enjoy


Автор: Гость (не зарегистрирован), дата: 6 ноября, 2021 - 10:12
#permalink

Impressive web site, Distinguished feedback that I can tackle. I am moving forward and may apply to my current job as a pet sitter, which is very enjoyable, but I need to additional expand. Regards.
세스코 가정집 비용


Автор: love status (не зарегистрирован), дата: 6 ноября, 2021 - 12:50
#permalink

here is best love status collection


Автор: chịmu (не зарегистрирован), дата: 8 ноября, 2021 - 12:03
#permalink

This is a great idea, it will definitely be shared widely, thanks for sharing it with us moto x3m


Автор: Гость (не зарегистрирован), дата: 13 ноября, 2021 - 11:25
#permalink

I’ve been searching for some decent stuff on the subject and haven't had any luck up until this point, You just got a new biggest fan!..
email marketing companies


Автор: Гость (не зарегистрирован), дата: 14 ноября, 2021 - 09:08
#permalink

it was a wonderful chance to visit this kind of site and I am happy to know. thank you so much for giving us a chance to have this opportunity..

butik masaj


Автор: Гость (не зарегистрирован), дата: 17 ноября, 2021 - 08:29
#permalink

Its a great pleasure reading your post.Its full of information I am looking for and I love to post a comment that "The content of your post is awesome" Great work.
류현진 경기중계


Автор: Гость (не зарегистрирован), дата: 24 ноября, 2021 - 10:02
#permalink

Great content material and great layout. Your website deserves all of the positive feedback it’s been getting.
오피스타


Автор: Гость (не зарегистрирован), дата: 25 ноября, 2021 - 11:37
#permalink

I wanted to thank you for this great read!! I definitely enjoying every little bit of it I have you bookmarked to check out new stuff you post.
คำคม


Автор: 먹튀검증 (не зарегистрирован), дата: 30 ноября, 2021 - 05:55
#permalink

I’m thinking some of my readers might find a bit of this interesting. Do you mind if I post a clip from this and link back? Thanks 먹튀검증


Автор: Гостьsd (не зарегистрирован), дата: 19 декабря, 2021 - 14:34
#permalink

I really loved reading your blog. It was very well authored and easy to undertand. Unlike additional blogs I have read which are really not tht good. I also found your posts very interesting. In fact after reading, I had to go show it to my friend and he ejoyed it as well!
Arborist


Автор: Гость (не зарегистрирован), дата: 21 декабря, 2021 - 09:17
#permalink

I recently came across your blog and have been reading along. I thought I would leave my first comment. I don't know what to say except that I have enjoyed reading. Nice blog. I will keep visiting this blog very often.
zinc citrate


Автор: Гость (не зарегистрирован), дата: 23 декабря, 2021 - 13:52
#permalink

These are some great tools that i definitely use for SEO work. This is a great list to use in the future..
banklast


Автор: 우리카지노 (не зарегистрирован), дата: 24 декабря, 2021 - 06:37
#permalink

I'm writing on this topic these days, 우리카지노, but I have stopped writing because there is no reference material. Then I accidentally found your article. I can refer to a variety of materials, so I think the work I was preparing will work! Thank you for your efforts.


Автор: Гость (не зарегистрирован), дата: 30 декабря, 2021 - 15:58
#permalink

Superbly written article, if only all bloggers offered the same content as you, the internet would be a far better place..
부달


Автор: 토토사이트 (не зарегистрирован), дата: 12 января, 2022 - 12:20
#permalink

You made such an interesting piece to read, giving every subject enlightenment for us to gain knowledge. Thanks for sharing the such information with us to read this. 토토사이트


Автор: 먹튀검증사이트추천 (не зарегистрирован), дата: 12 января, 2022 - 12:39
#permalink

If you are going for best contents like I do, simply go to see this website all the time as it provides feature contents, thanks 먹튀검증사이트추천


Автор: 토토사이트 (не зарегистрирован), дата: 14 января, 2022 - 01:04
#permalink

I ll recommend it whenever good comments come up. I ll let people know. I hope you can enjoy this blog. 토토사이트


Автор: 먹튀검증 (не зарегистрирован), дата: 14 января, 2022 - 01:04
#permalink

I think your site is very good. I m growing up by looking at the articles on the site here. Succeed. 먹튀검증


Автор: Гость (не зарегистрирован), дата: 10 февраля, 2022 - 06:04
#permalink

You are sharing interesting articles. It will be of great help to me, my friends and relatives. Thanks for sharing it. drift huntwers


Автор: keonhacai (не зарегистрирован), дата: 14 февраля, 2022 - 11:50
#permalink

Thanks for your post. The article is neatly organized with the information I want, so there are many things to refer to. Bookmark this site and visit often in the future. Thanks again.^^ keonhacai


Автор: Гость (не зарегистрирован), дата: 24 февраля, 2022 - 05:08
#permalink

What do you think is the best bet? I know some really useful information토토


Автор: kumola (не зарегистрирован), дата: 26 февраля, 2022 - 13:28
#permalink

A very meaningful event, I hope everything will go well run 3


Автор: Eric Fisher (не зарегистрирован), дата: 3 марта, 2022 - 05:45
#permalink

Спасибо за информацию, которой вы делитесь, скачайте бесплатные рингтоны со многими популярными рингтонами прямо сейчас klingeltöne kostenlos


Автор: 바카라커뮤니티 (не зарегистрирован), дата: 9 марта, 2022 - 05:17
#permalink

You ought to be a part of a contest for just one of the finest blogs on the web. I am going to suggest this site. 바카라커뮤니티 I hope you can read my post and let me know what to modify. My writing is in I would like you to visit my blog.


Автор: Гость (не зарегистрирован), дата: 10 марта, 2022 - 19:16
#permalink

I really loved reading your blog. It was very well authored and easy to understand. Unlike other blogs I have read which are really not that good.Thanks alot!
신용카드현금화


Автор: 메이저사이트 (не зарегистрирован), дата: 11 марта, 2022 - 07:34
#permalink

Positive site, where did u come up with the information on this posting?I have read a few of the articles on your website now, and I really like your style. Thanks a million and please keep up the effective work. 메이저사이트


Автор: Гость (не зарегистрирован), дата: 15 марта, 2022 - 15:34
#permalink

Great content material and great layout. Your website deserves all of the positive feedback it’s been getting.
playa del carmen cenotes


Автор: Гость (не зарегистрирован), дата: 18 марта, 2022 - 17:08
#permalink

Great content material and great layout. Your website deserves all of the positive feedback it’s been getting.
vacationing in tulummexico


Автор: site820 (не зарегистрирован), дата: 30 марта, 2022 - 11:43
#permalink

Автор: lilywatson (не зарегистрирован), дата: 31 марта, 2022 - 10:27
#permalink

I adore this article for its well-researched content and great wording 1v1 battle


Автор: 토토검증 (не зарегистрирован), дата: 31 марта, 2022 - 10:56
#permalink

Your article has answered the question I was wondering about! I would like to write a thesis on this subject, but I would like you to give your opinion once 토토검증


Автор: 룰렛사이트 (не зарегистрирован), дата: 31 марта, 2022 - 11:02
#permalink

My curiosity was solved by looking at your writing. Your writing was helpful to me. 룰렛사이트 I want to help you too.


Автор: Weather Forecast (не зарегистрирован), дата: 5 апреля, 2022 - 12:26
#permalink

(комментарий удалён)


Автор: Weather (не зарегистрирован), дата: 5 апреля, 2022 - 12:27
#permalink

(комментарий удалён)


Автор: Гость (не зарегистрирован), дата: 12 апреля, 2022 - 15:42
#permalink

Автор: Гость (не зарегистрирован), дата: 16 апреля, 2022 - 02:59
#permalink

Автор: Гость (не зарегистрирован), дата: 16 апреля, 2022 - 12:02
#permalink

Автор: Гость (не зарегистрирован), дата: 16 мая, 2022 - 21:35
#permalink

this is gewar


Автор: Гость (не зарегистрирован), дата: 16 мая, 2022 - 21:41
#permalink

Автор: Гость (не зарегистрирован), дата: 16 мая, 2022 - 22:05
#permalink

this is great


Автор: medicalphd, дата: 16 мая, 2022 - 22:56
#permalink

Автор: https://bbpress.org/forums/profile/snake008/ (не зарегистрирован), дата: 19 мая, 2022 - 10:20
#permalink

Regards for helping out, great info . poka88


Автор: Simon Tai (не зарегистрирован), дата: 4 июня, 2022 - 06:47
#permalink

Professional wedding DJ Services in the Philadelphia area. We provide a personalized music curation experience that makes your wedding unique and unforgettable. Let us turn your dream into reality with our top notch entertainment services. Philadelphia Wedding DJ


Автор: 카지노사이트 (не зарегистрирован), дата: 7 июня, 2022 - 10:17
#permalink

Unbelievable!! The problem I was thinking about was solved. 카지노사이트 You are really awesome.


Автор: 마하캔디 (не зарегистрирован), дата: 14 июня, 2022 - 05:34
#permalink

I always think about what is. It seems to be a perfect article that seems to blow away such worries. 마하캔디 seems to be the best way to show something. When you have time, please write an article about what means!!


Автор: 열공캔디 (не зарегистрирован), дата: 17 июня, 2022 - 07:00
#permalink

It seems like I've never seen an article of a kind like . It literally means the best thorn. It seems to be a fantastic article. It is the best among articles related to 열공캔디 . seems very easy, but it's a difficult kind of article, and it's perfect.


Автор: bitmain antminer s19j pro (не зарегистрирован), дата: 21 июня, 2022 - 11:59
#permalink

There is a lot of information here that can help any business get started with a successful social networking campaign
bitmain antminer s19j pro


Автор: 007카지노주소 (не зарегистрирован), дата: 23 июня, 2022 - 12:49
#permalink

I found this is an informative and interesting post so i think so it is very useful and knowledgeable. I would like to thank you for the efforts you have made in writing this article. If more people that write articles really concerned themselves with writing great content like you, more reader s would be interested in their writings. Thank you for caring about your content. You have a real talent for writing unique content. I like how you think and the way you express your views in this article. I am impressed by your writing style a lot. Thanks for making my experience more beautiful . I have recently started a blog, the info you provide on this site has helped me greatly. Thanks for all of your time & work.
007카지노주소


Автор: 먹튀검증 (не зарегистрирован), дата: 23 июня, 2022 - 14:22
#permalink

This particular is usually apparently essential and moreover outstanding truth along with for sure fair-minded and moreover admittedly useful My business is looking to find in advance designed for this specific useful stuffs… Really interesting and one of a kind post. I like such things as making more research, developing writing skills, as well as related things. These kinds of secrets help in being a specialist on this topic. This post is very helpful to my family because people like you devoted time to learning. Regularity is the key. But it is not that easy, as has been made out to be. I am not an expert like you and lots of times I feel like giving it up. Looking at a person like me, your posting is of good assistance and booster. Thank you for sharing.
먹튀검증


Автор: 토토 (не зарегистрирован), дата: 23 июня, 2022 - 15:27
#permalink

This is an awesome motivating article.I am practically satisfied with your great work.You put truly extremely supportive data. Keep it up. Continue blogging. Hoping to perusing your next post . I really enjoy simply reading all of your weblogs. Simply wanted to inform you that you have people like me who appreciate your work. Definitely a great post. Hats off to you! The information that you have provided is very helpful. I’m excited to uncover this page. I need to to thank you for ones time for this particularly fantastic read !! I definitely really liked every part of it and i also have you saved to fav to look at new information in your site.

토토


Автор: 코인카지노 (не зарегистрирован), дата: 23 июня, 2022 - 16:55
#permalink

Nice post. I learn something tougher on distinct blogs everyday. Most commonly it is stimulating to see content off their writers and use a little there. I’d want to use some with all the content on my blog whether you don’t mind. Natually I’ll offer you a link on the web weblog. Many thanks sharing. This post is very informative on this topic. I feel strongly that love and read more on this topic. I just tripped upon your blog and wanted to say that I have really enjoyed reading your blog stations. Great post, I think website owners should acquire a lot from this web site its very user pleasant.
코인카지노


Автор: 마하캔디 (не зарегистрирован), дата: 3 июля, 2022 - 07:30
#permalink

Unbelievable!! The problem I was thinking about was solved. 마하캔디 You are really awesome.


Автор: 카지노사이트추천 (не зарегистрирован), дата: 7 июля, 2022 - 10:45
#permalink

That's a great article! The neatly organized content is good to see. Can I quote a blog and write it on my blog? My blog has a variety of communities including these articles. Would you like to visit me later? 카지노사이트추천


Автор: 카지노사이트추천 (не зарегистрирован), дата: 9 июля, 2022 - 04:57
#permalink

That's a great article! The neatly organized content is good to see. Can I quote a blog and write it on my blog? My blog has a variety of communities including these articles. Would you like to visit me later? 카지노사이트추천


Автор: 바카라사이트추천 (не зарегистрирован), дата: 13 июля, 2022 - 09:31
#permalink

That's a really impressive new idea! 바카라사이트추천 It touched me a lot. I would love to hear your opinion on my site. Please come to the site I run once and leave a comment. Thank you.


Автор: 온라인카지노 (не зарегистрирован), дата: 14 июля, 2022 - 09:26
#permalink

While looking for articles on these topics, I came across this article on the site here. As I read your article, I felt like an expert in this field. I have several articles on these topics posted on my site. Could you please visit my homepage? 온라인카지노


Автор: 카지노게임사이트 (не зарегистрирован), дата: 16 июля, 2022 - 07:13
#permalink

When I read your article on this topic, the first thought seems profound and difficult. There is also a bulletin board for discussion of articles and photos similar to this topic on my site, but I would like to visit once when I have time to discuss this topic. 카지노게임사이트


Автор: 카지노사이트추천 (не зарегистрирован), дата: 22 июля, 2022 - 07:15
#permalink

That is a really impressive new idea! 바카라사이트추천 It touched me a lot. I would love to hear your opinion on my site. Please come to the site I run once and leave a comment. Thank you!


Автор: 카지노사이트 (не зарегистрирован), дата: 26 июля, 2022 - 09:30
#permalink

Hello!!! I'm happy to see some great articles on your site. Would you like to come to my site later? My site also has posts, comments and communities similar to yours. Please visit and take a look 카지노사이트
XDZGDR


Автор: 온라인바카라사이트 (не зарегистрирован), дата: 27 июля, 2022 - 06:14
#permalink

Your ideas inspired me very much. 온라인바카라사이트 It's amazing. I want to learn your writing skills. In fact, I also have a website. If you are okay, please visit once and leave your opinion. Thanks


Автор: 바카라사이트 (не зарегистрирован), дата: 28 июля, 2022 - 10:30
#permalink

This is the perfect post. 바카라사이트 It helped me a lot. If you have time, I hope you come to my site and share your opinions. Have a nice day. ^^


Автор: 바카라사이트추천 (не зарегистрирован), дата: 29 июля, 2022 - 11:43
#permalink

That is a really impressive new idea! 바카라사이트추천 It touched me a lot. I would love to hear your opinion on my site. Please come to the site I run once and leave a comment. Thank you!


Автор: 바카라사이트 (не зарегистрирован), дата: 1 августа, 2022 - 04:55
#permalink

This is the perfect post.바카라사이트 It helped me a lot. If you have time, I hope you come to my site and share your opinions. Have a nice day.


Автор: 온라인바카라 (не зарегистрирован), дата: 4 августа, 2022 - 06:41
#permalink

Hello, I read the post well. 온라인바카라 It's a really interesting topic and it has helped me a lot. In fact, I also run a website with similar content to your posting. Please visit once


 
Текущий раздел
Поиск по сайту
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Последние комментарии
Последние темы на форуме
Forum