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; }
Kommunerne har digitaliseret indgangen for borgerne. Men bag skærmen håndteres mange arbejdsgange stadig manuelt mellem systemer, mails og organisatoriske siloer.
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.