Просмотр источника хрома привел меня к: node.ownerDocument.defaultView.getMatchedCSSRules (node, '');
Я использовал его для создания этой функции, которая будет возвращать только стили, определенные свойством стиляили соответствующее правило CSS.Все, что появляется в getComputedStyle, но не здесь, будет по умолчанию, но я думаю, что это возвращает то, что вы действительно ищете: стили без значений по умолчанию.
// WebKit only
function getStyle(node) {
var styles = {};
var rules = node.ownerDocument.defaultView.getMatchedCSSRules(node, '');
var i = rules.length;
while (i--) {
merge(styles, rules[i].style)
}
merge(styles, node.style);
return styles;
function merge(obj, style) {
var i = style.length;
while(i--) {
var name = style[i];
obj[name] = style.getPropertyCSSValue(name);
}
}
}