Показать сообщение отдельно
  #2 (permalink)  
Старый 05.06.2012, 14:23
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

function style( elem ) {
    if ( elem.ownerDocument && elem.ownerDocument.defaultView ) {
        return elem.ownerDocument.defaultView.getComputedStyle( elem, null );
    } else if ( elem.currentStyle ) {
        return elem.currentStyle;
    }
    return elem.style;
}

function toRGB( color ) {

    var result;

    // rgb(num,num,num)
    if ( result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec( color ) ) {

        result = [ parseInt( result[ 1 ] ), parseInt( result[ 2 ] ), parseInt( result[ 3 ] ) ];
    // rgb(num%,num%,num%)
    } else if ( result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec( color ) ) {

        result = [ parseFloat( result[ 1 ] ) * 2.55, parseFloat( result[ 2 ] ) * 2.55, parseFloat( result[ 3 ] ) * 2.55 ];
    // #a0b1c2
    } else if ( result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec( color ) ) {

        result = [ parseInt( result[ 1 ], 16 ), parseInt( result[ 2 ], 16 ), parseInt( result[ 3 ], 16 ) ];
    // #fff
    } else if ( result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec( color ) ) {

        result = [ parseInt( result[ 1 ] + result[ 1 ], 16 ), parseInt( result[ 2 ] + result[ 2 ], 16 ), parseInt( result[ 3 ] + result[ 3 ], 16 ) ];

    } else { // ничего не совпало
        // скорее всего цвет указан словесным названием типа: red, blue и т.д.
        return color;
    }

    return "#" + result[ 0 ].toString( 16 ) + result[ 1 ].toString( 16 ) + result[ 2 ].toString( 16 );
}


var form =window.document.forms[0,
    elements = form.elements; 

for( var i = 0, len = elements.length; i < len; i++ ) {
    alert( toRGB( style( elements[i] ).backgroundColor ) );
}
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine

Последний раз редактировалось devote, 05.06.2012 в 14:26.
Ответить с цитированием