16. november 2004 - 16:51Der er
7 kommentarer og 1 løsning
Finde højde og width på en tabel
Hej eksperter,
Jeg vil spørge om nogen af jer er i stand til at omskrive disse to funktioner til at finde henholdsvis højde og bredden på en tabel i øjeblikket finder de for hele siden.
Det er vigtigt at den finder den faktiske bredde og højde og ikke bare den højde og bredde der er sat i <tabel> tagget (Width, Height).
function getHeight() { var b1 = (window.innerHeight)?true:false; if (!b1) { var b2 = (document.body.offsetHeight==document.body.scrollHeight)?true:false; var b3 = (document.documentElement&&document.documentElement.clientHeight)?true:false; } var scrollHeight = (b1)?window.innerHeight:(b2&&b3)?document.documentElement.scrollHeight:document.body.scrollHeight; var trueHeight = (scrollHeight<document.documentElement.clientHeight)?document.documentElement.clientHeight:scrollHeight return trueHeight; } function getWidth() { var b1 = (window.innerHeight)?true:false; if (!b1) { var b2 = (document.body.offsetWidth==document.body.scrollWidth)?true:false; var b3 = (document.documentElement&&document.documentElement.clientWidth)?true:false; } var scrollWidth = (b1)?window.innerHeight:(b2&&b3)?document.documentElement.scrollWidth:document.body.scrollWidth; var trueWidth = (scrollWidth<document.documentElement.clientWidth)?document.documentElement.clientWidth:scrollWidth return trueWidth; }
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Fandt ud af det, det skyldes nemlig at hvis den bredde der er sat via <tabel> tagget er breddere end den faktiske bredde vil offsetWidth altid udskrive den højde derer sat.
Enhver kan rimmelig hurtigt se at den tabels faktiske bredde langtfra er 300 men offsetWidth vil alligevel udskrive "300" fordi at IE (Har ikke testet i andre browsere) vil strække cellen test så langt ud så det passer med at den for en width på 300. Og derfor udskriver offsetWidth "300"
det er klart...det vil andre browsere vel også gøre... udelad width="300" og du vil så få den faktiske bredde...
<table> <tr> <td name="test"> Hej </td> </tr> </table> Tabellen vil så også være smallere, men sådan er det jo... Alternativt kan du lave et <div>-tag inde i td, give det et id og så finde bredden af det istedet...
<script type="text/JavaScript"> function getHeight() { var tbl = document.getElementById("tdDiv1"); return tbl.offsetHeight; } function getWidth() { var tbl = document.getElementById("tdDiv1"); return tbl.offsetWidth; } </script>
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.