походу Opera вообще не понимает что такое scrollHeight зачем оно надо и как с ним работать. Если вот даже взять обычную textarea, установить overflow в hidden и начать заполнять текстом, то Opera вообще никак не отлавливает изменение scrollHeight, а вот FF и IE отлавливают только так.
<html>
<head>
</head>
<body>
<br>
<br>
<br>
<textarea style="overflow:hidden" id="t" onkeyDown="f()" onkeyUp="f()"></textarea>
<br>
<input type="button" value="Click Me" onclick="f1()">
<script>
function f1()
{
alert("offset: "+document.getElementById("t").offsetHeight+" scroll:"+document.getElementById("t").scrollHeight)
}
function f()
{
if(document.getElementById("t").offsetHeight<document.getElementById("t").scrollHeight){document.getElementById("t").style.height=document.getElementById("t").scrollHeight}}
</script>
</body>
</html>