1. function GetAbsoluteLocationEx(element) {
2. if (arguments.length != 1 || element == null) {
3. return null;
4. }
5. var elmt = element;
6. var offsetTop = elmt.offsetTop;
7. var offsetLeft = elmt.offsetLeft;
8. var offsetWidth = elmt.offsetWidth;
9. var offsetHeight = elmt.offsetHeight;
10. while (elmt = elmt.offsetParent) {
11. // add this judge
12. if (elmt.style.position == 'absolute' || elmt.style.position == 'relative'
13. || (elmt.style.overflow != 'visible' && elmt.style.overflow != '')) {
14. break;
15. }
16. offsetTop += elmt.offsetTop;
17. offsetLeft += elmt.offsetLeft;
18. }
19. return { absoluteTop: offsetTop, absoluteLeft: offsetLeft, offsetWidth: offsetWidth, offsetHeight: offsetHeight };
20. }