Ja napisalem cos takiego:
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-2"> <script type="text/javascript">
function scroll_width() {
szer1 = document.body.clientWidth;
styl = document.body.style;
over = styl.overflow;
styl.overflow = 'hidden';
szer2 = document.body.clientWidth;
if(navigator.userAgent.indexOf('Opera') != -1) {
while(szer1 == szer2) { // dlatego bo opera reaguje z opoznieniem na overflow hidden
szer2 = document.body.clientWidth;
}
}
styl.overflow = over;
alert(szer2 - szer1);
}
<body onload="scroll_width();">
Dziala na IE6, Firefox 1.0PR, Opera 7.23...
Ale jest pewnien problem - nie dziala na zwyklej Mozilli (tzn. dziala, ale zwraca -16 zamiast 15), chodziaz dziala na Firefoksie ktory przeciez jest tez na Gecko

. Problem polega na tym, ze jakos dziwnie reaguje na zmiane overflow na hidden... Pasek sie nie ukrywa, ale clientWidth zaczyna zwracac inna wartosc... Probowalem ukryc scrollbara przez window.scrollbars.visibility, przez setAttribute('style','overflow: hidden;') ale mi sie nie udalo

Na reszcie zwracane wartosci zgadzaja sie ze screenami...