[Dojo-interest] ScrollPane in IE

Daniel daniel.carrera at zmsl.com
Fri Dec 14 16:38:54 UTC 2007


Sorry for all the emails. I found the problem, but not yet a full solution.

It's nothing to do with .startup(). IE just threw me off because it was 
using the cache.

Go to dojox/layout/ScrollPane.js on line 48:

(this.containerNode.scrollWidth - this._lo.w)

.scrollWidth is 1137 and this._lo.w varies. For Firefox, Safari and 
Opera it is around 620-625. But for IE it is 0.

=> This makes this._size equal to 0 in IE whereas it is ~625 in other 
browsers.

Further ahead we find:

var u = this._lo[(this._vertical?"h":"w")]
var size = u * (u / Math.max(1,this._size));
...
dojo.style(this.helper,this._dir,Math.floor(size)+"px");

=> For everyone else, the size is in the order of 735px or so. But for 
IE we get 1292769px.


To test, I made the following changes:

* I added a 'this._lo.w = 625' at the beginning, on line 46.
* I used the IE developer tools to force dojoxScrollWrapper to have 
style="width: 100%".

The result is that the ScrollPane worked perfectly.

So, what do we need to do:

1. Add 'width:100%' to the styles of ScrollPane.
2. Figure out why dojo.coord is giving a goof value.

I don't know how dojo.cood works at all. If someone explains to me what 
it's supposed to do and where I can find it, I'm willing to take a look. 
But I fear that it might be too complex for me.

Cheers,
Daniel.


More information about the Dojo-interest mailing list