Проблема в некорректном, с точки зрения учебников, поведении Google Chrome.
Я написал такой код, который воспроизводит проблему.
<html>
<head>
<style>
@font-face {
font-family: 'Philosopher';
font-style: normal;
font-weight: 400;
src: url([url]http://themes.googleusercontent.com/static/fonts/philosopher/v4/OttjxgcoEsufOGSINYBGLWOb2gHztoQeulij-[/url]
1lvl-8.woff) format('woff');
}
body {
font-family: Philosopher;
font-size: 20px;
}
</style>
<script>
window.onload=function(){console.log('onload event -- '+document.getElementById("a").offsetWidth);}
window.setTimeout('console.log("timeout 10 event -- "+document.getElementById("a").offsetWidth)',10);
window.setTimeout('console.log("timeout 100 event -- "+document.getElementById("a").offsetWidth)',100);
</script>
</head>
<body>
<span id="a">qwe qwe qwe qwe</span>
</body>
</html>
Вывод этого скрипта:
onload event -- 186
timeout 10 event -- 186
timeout 100 event -- 159
И нашел другие разговоры о ней тут
http://productforums.google.com/foru...me/7VIpByhmU3U
По-прежнему прошу помочь разобраться в том, как правильно написать обработчик события - аналог onload без jQuery и других библиотек.