2010-05-09 11 views
1

Je dois écrire une fonction javascript qui retourne la taille actuelle (en px) d'un div. Malheureusement le div a son poids spécifié en % au lieu de px.Obtenir la taille en 'px' au lieu de pourcentages

Le style de la div: position: absolute; width: 100%; height: 100%;

Et ma largeur fonction retour:

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

tabWidth est '100%'.

Est-il possible de retourner la largeur px au lieu de la largeur %?

NOTE: Je n'ai accès à aucun fichier html/css, car la page sur laquelle je travaille est générée par un framework complexe. Je peux seulement embarquer javascript.

Répondre

7

Chaque navigateur est différent. Dans la plupart des cas, vous pouvez utiliser les propriétés clientWidth et clientHeight de l'élément DOM. Dans les navigateurs autres que IE, vous pouvez utiliser document.defaultView.getComputedStyle(). Cependant, je vous recommande d'utiliser un framework qui prend en charge les problèmes inter-navigateurs pour vous. En jQuery, vous pouvez obtenir la largeur actuelle en pixels en utilisant quelque chose d'aussi simple que $(element).width().

+1

Oui. Sue jQuery !! – Midhat

+0

Haha, édité et corrigé. : D –

+3

+1 pour donner les moyens autres que jQuery (une bonne réponse c'est bien) car l'OP ne peut pas/vouloir ajouter jQuery à sa sortie de framework complexe. –

2
node.offsetWidth 

devrait faire l'affaire (dans tous les navigateurs!)

Questions connexes