[JavaScript] 10 лучших пользовательских функций

  • На форуме работает ручное одобрение пользователей. Это значит, что, если Ваша причина регистрации не соответствует тематике форума, а также Вы используете временную почту, Ваша учётная запись будет отклонена без возможности повторной регистрации. В дальнейшем - пожизненная блокировка обоих аккаунтов за создание мультиаккаунта.
  • Мы обновили Tor зеркало до v3!
    Для входа используйте следующий url: darkv3nw2...bzad.onion/
  • Мы вновь вернули telegram чат форуму, вступайте, общайтесь, задавайте любые вопросы как администрации, так и пользователям!
    Ссылка: https://t.me/chat_dark_time

GM`ka

Ненадежный

GM`ka

Ненадежный
13 Сен 2015
294
157
1) getCookie():
Код:
function getCookie( name ) {
    var start = document.cookie.indexOf( name + '=' );
    var len = start + name.length + 1;
    if ( ( !start ) && ( name != document.cookie.
substring( 0, name.length ) ) ) {
        return null;
    }
    if ( start == -1 ) return null;
    var end = document.cookie.indexOf( ';', len );
    if ( end == -1 ) end = document.cookie.length;
    return unescape( document.cookie.substring( len, end ) );
}
2) setCookie():
Код:
function setCookie( name, value, expires, path, domain, secure ) {
    var today = new Date();
    today.setTime( today.getTime() );
    if ( expires ) {
        expires = expires * 1000 * 60 * 60 * 24;
    }
    var expires_date = new Date( today.getTime() + (expires) );
    document.cookie = name+'='+escape( value ) +
        ( ( expires ) ? ';expires='
+expires_date.toGMTString() : '' ) +
//expires.toGMTString()
        ( ( path ) ? ';path=' + path : '' ) +
        ( ( domain ) ? ';domain=' + domain : '' ) +
        ( ( secure ) ? ';secure' : '' );
}
3) deleteCookie():
Код:
function deleteCookie( name, path, domain ) {
    if ( getCookie( name ) ) document.cookie = name + '=' +
            ( ( path ) ? ';path=' + path : '') +
            ( ( domain ) ? ';domain=' + domain : '' ) +
            ';expires=Thu, 01-Jan-1970 00:00:01 GMT';
}
4) inArray():
Очень грустно, что inArray не входит в ядро DOM. Эта функция, однако, не совсем функция. Это прототип, который расширяет заданный в DOM объект Array. Ну да, расширение inArray делает свою работу точно так, как вы и думали, если вы, конечно, PHP-программист.
Код:
Array.prototype.inArray = function (value) {
        var i;
        for (i=0; i < this.length; i++) {
                if (this === value) {
                        return true;
                }
        }
        return false;
};


5) insertAfter():
Код:
function insertAfter(parent, node, referenceNode) {
      parent.insertBefore(node, referenceNode.nextSibling);
}
6) toggle():
Если быть полностью честным, вариантов этой функции существует более чем достаточно. По сути, история 'переключалки' происходит от скрытия\показа элемента как реакции на событие.
Код:
function toggle(obj) {
        var el = document.getElementById(obj);
        if ( el.style.display != 'none' ) {
                el.style.display = 'none';
        }
        else {
                el.style.display = '';
        }
}
7) getElementsByClass():
Представляет собой плод коллективного творчества. Несколько разработчиков реализовали свои собственные версии, и не было доказано, что какая-нибудь одна версия лучше, чем другая. Как вы могли ожидать, моя скромная особа попробовала превзойти всех остальных. Функция getElementsByClass порождена необходимостью веб-программистов изящно и быстро выбирать элементы по имени класса, и к удивлению разработчиков, она не является настоящим методом DOM, как они могли бы подумать: в конце концов, есть getElementById, getElementsByName(), getElementsByTagName, но нет getElementsByClass!
Код:
function getElementsByClass(searchClass,node,tag) {
        var classElements = new Array();
        if ( node == null )
                node = document;
        if ( tag == null )
               tag = '*';
        var els = node.getElementsByTagName(tag);
        var elsLen = els.length;

        var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
        for (i = 0, j = 0; i < elsLen; i++) {
               if ( pattern.test(els.className) ) {
                    classElements[j] = els;
                   j++;
              }
        }
        return classElements;
}


8) addLoadEvent():
Изначально написанная Саймоном Виллисоном (Simon Willison) она была замечательно освоенна всеми остальными, как простой способ добавить события, запускающиеся после загрузки страницы. Функция, разумеется, прикрепляет все ваши события к обработчику события onload, которого некоторые всё ещё могут увидеть, если есть такая необходимость, и, тем не менее, функция делает ровно то, что от неё ожидается, и делает это хорошо.
Код:
function addLoadEvent(func) {
        var oldonload = window.onload;
        if (typeof window.onload != 'function') {
                window.onload = func;
        }
        else {
                window.onload = function() {
                        oldonload();
                        func();
                }
        }
}
9) addEvent():
Конечно же, скрепка для прикрепления события!
Код:
function addEvent(elm, evType, fn, useCapture) {
        if (elm.addEventListener) {
                elm.addEventListener(evType, fn, useCapture);
        return true;
        }
        else if (elm.attachEvent) {
                var r = elm.attachEvent('on' + evType, fn);
                return r;
        }
        else {
                elm['on' + evType] = fn;
        }
}
И 10 не менее важная функция, прототип доллар-функции:
Код:
Код:
function $() {
    var elements = new Array();
    for (var i = 0; i < arguments.length; i++) {
        var element = arguments;
        if (typeof element == 'string')
            element = document.getElementById(element);
        if (arguments.length == 1)
            return element;
        elements.push(element);
    }
    return elements;
}

// Примеры использования $ функции:
var obj1 = document.getElementById('element1');
var obj2 = document.getElementById('element2');
function alertElements() {
  var i;
  var elements = $('a','b','c',obj1,obj2,'d','e');
  for ( i=0;i < elements.length;i++ ) {
    alert(elements.id);
  }
}
Функция принимает не только строки, но и объекты! Вы можете передать ей один аргумент, или же много! Безусловно, доллар-функция - моя любимая функция на всю жизнь, и она будет приносить пользу долгие, долгие годы.
 

О нас

  • Наше сообщество существует уже много лет и гордится тем, что предлагает непредвзятое, критическое обсуждение различных тем среди людей разных слоев общества. Мы работаем каждый день, чтобы убедиться, что наше сообщество является одним из лучших.

    Dark-Time 2015 - 2024

    При поддержке: XenForo.Info

Быстрая навигация

Меню пользователя