This has been asked a zillion times: here, there, and the other place just on SO. Yet there\'s no real good answer that I can find.
I ended up modeling the "solution" on the suggestion of @Naveed Ahmad. I put the data part of the table in a
; and made a fake that I filled in at onLoad time by referring to the widths and offsets of thefunction position_col_heads ( ) {
// get all the TD child elements from the first row
var tds = main_tbody.children[0].getElementsByTagName('TD');
for ( var i = 0; i < tds.length; ++i ) {
thead.children[i].style.left =
parseFloat( tds[i].offsetLeft ) + 'px';
thead.children[i].style.width =
parseFloat( tds[i].scrollWidth ) + 'px';
}
}
This works more or less OK on this page.