Хм, вот как раз вопрос "сомнительной кроссбраузерности" и интересует. Бегло проверил на 9 и 10 опере, 8,7,6 ие, 4 хроме и фф 2, 3 - работает.
Про таймеры согласен, но в противном случае - много больше кода получается.
var k = 0;
function domReady(fn){
setTimeout(function(){
++k;
document.body ? fn() : setTimeout(arguments.callee, 0);
}, 0);
}
domReady(function(){
document.getElementById('asd').style.color = '#f00';
alert(k) // 1 везде выдает
})
Причем
не на пустой странице