Мелкие, но полезные функции. Часть 2

Продолжаю данную тему, как выяснилось – многим интересную :)

1) Генерация случайного числа в определенном диапазоне:

function randomIntervalNumber(m,n)  {
    return Math.floor( Math.random() * (n - m + 1) ) + m;
}

2) Определение координат мыши:

function mousePageXY(e) {
    var x, y;
    if (!e) e = window.event;
    if (e.pageX && e.pageY) {
      x = e.pageX;
      y = e.pageY;
    } else if (e.clientX || e.clientY) {
      x = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
      y = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop;
    }
    return {'x':x,'y':y};
}

3) Запрет выделения текста на сайте:

Полезная фича, но увы легко обойти – выключив JavaScript

function disableSelection(target){
    if (typeof target.onselectstart!="undefined") //IE route
        target.onselectstart=function(){return false}
    else if (target.style && typeof target.style.MozUserSelect!="undefined") //Firefox route
        target.style.MozUserSelect="none"
    else //All other route (ie: Opera)
        target.onmousedown=function(){return false}
    if(target.style && target.style.cursor) target.style.cursor = "default"
}
disableSelection(document.body);

4) Выборка родителя по классу:

function getElementBefore(_el,_class) {
    var _parent = _el;
    do {
        _parent = _parent.parentNode;
    }
    while(_parent && _parent.tagName != "HTML" &&  _parent.className.indexOf(_class) == -1)
    return _parent;
}

5) Создание нового элемента:

function newElement(elementName,text,attributes) {
    if(typeof elementName != "string" || typeof attributes != "object") return;
    var element = document.createElement(elementName);
    element.appendChild(document.createTextNode(text));
    for( var i in attributes ) {
        element[i] = attributes[i];
    }
    return element;
}
Четверг, Октябрь 22nd, 2009 JavaScript

1 Коментарий to Мелкие, но полезные функции. Часть 2

  • Чуть изменил вот эту функцию:

    function getElementBefore(_el,_class) {
        var _parent = _el;
        do {
            _parent = _parent.parentNode;
        }
        while(_parent && _parent.tagName.toUpperCase() != "HTML" &&  !( new RegExp( '(^|\\s)' + _class + '(\\s|$)' ) ).test( _parent.className ) )
        return _parent;
    }
  • Оставить сообщение

    Rotaban.ru - биржа банерной рекламы