2010-05-09 56 views
1

我必须编写一个javascript函数,它返回div的当前大小(px)。不幸的是,div的重量是%,而不是px获取'px'而不是百分比的大小

的div风格:position: absolute; width: 100%; height: 100%;

我的宽度返回函数:

function getTableWidth(tableId){ 
    var tabWidth = document.getElementById('pt1::tabb').children[0].children[0].style.width; 
    return tabWidth; 
} 

tabWidth是 '100%'。

是否可以返回宽度px而不是%宽度?

注意:我无权访问任何html/css,因为我正在处理的页面是通过复杂的框架生成的。我只能嵌入JavaScript。

回答

7

每个浏览器都不一样。在大多数情况下,您可以使用DOM元素的clientWidthclientHeight属性。在非IE浏览器中,您可以使用document.defaultView.getComputedStyle()。不过,我建议使用一个框架,为您处理跨浏览器问题。在jQuery中,你可以使用像$(element).width()这样简单的东西来获取当前的像素宽度。

+1

是。苏jQuery! – Midhat 2010-05-09 09:12:24

+0

哈哈,编辑和修复。 :D – 2010-05-09 09:13:11

+3

+1给出了jQuery以外的其他方式(好的答案是它自己的权利),因为OP可能无法/不愿意将jQuery添加到其复杂的框架输出中。 – 2010-05-09 09:15:25

2
node.offsetWidth 

应该做的伎俩(在所有浏览器!)