Avatar billede mrvedel Nybegynder
12. januar 2009 - 16:57 Der er 8 kommentarer og
1 løsning

offsetWidth; i IE - Hvorfor ikke?

Yo in tha House...

Jeg bruger følgende script der virker i alle andre browsere end IE:

<table><tr><td id="TdId">
gj lfd gjfd jgklfdj klgflkd jgklfdj gklfjd klgflkd gfd
</td></tr></table>

<script language=javascript>
var BigTd = document.getElementById('TdId');
var w = BigTd.offsetWidth;
</script>

Herefter ønsker jeg at vide hvor bred min table er. Det vises fint i Firefox og Safari - men ikke IE.

Why??
Avatar billede majbom Novice
12. januar 2009 - 19:35 #1
nej det virker underligt, jeg kan godt få det til at virke.

men jeg laver en funktion så finder bredden og den kalder jeg først når tabellen er "tegnet"...

www.majbom.com/testarea/exp/859474

se koden
Avatar billede mrvedel Nybegynder
12. januar 2009 - 20:20 #2
Hmmm
Det virker sgu' fint...

Jeg tror det mig der er en klovn til Java...
Jeg har smidt din funktion ind i head sektionen, og derefter senere et sted på sitet gør jeg følgende:

<%
divwidth = "<script type='text/javascript'>document.write(getWidth());</script>"
%>

Den siger undefined...
Jeg ønsker at bruge værdien som en asp konstant...
Kan det lade sig gøre?
Avatar billede majbom Novice
12. januar 2009 - 20:36 #3
java og javascript er 2 vidt forskellige ting.

u kan ikke bruge den som en asp-konstant på den måde, da asp bliver kørt på serveren inden siden sendes til browseren, hvor javascriptet køres.
Avatar billede mrvedel Nybegynder
13. januar 2009 - 08:01 #4
Aha - ok. Ja nu er jeg så blevet meget klogere...
Men jeg kan så godt gøre således:

<div style="width: <script type='text/javascript'>document.write(getWidth());</script>;">
Indhold af div
</div>

???
Avatar billede majbom Novice
13. januar 2009 - 09:03 #5
jeg ville nok gøre følgende:

<script language=javascript>
  function setWidth(elm){
      var BigTd = document.getElementById('TdId');
      document.getElementById(elm).style.width = BigTd.offsetWidth;
  }
</script>
...
<body onload="setWidth("min_div")">
<div id="min_div">hej test</div>
</body>
</html>

nu skulle div'en gerne blive lige så bred som din td
Avatar billede mrvedel Nybegynder
28. januar 2009 - 19:53 #6
Jepper....
Det virker!

Beklager det sene svar - har lige været lidt på ski...

Totalt Thanks....
Avatar billede majbom Novice
01. februar 2009 - 09:49 #7
tak for point!

hehe sjovt, jeg kom hjem fra Østrig i nat ;o)
Avatar billede olebole Juniormester
01. februar 2009 - 14:51 #8
<ole>

Hvis det virker, er det en fejl  =)

<script type="text/javascript">
  function setWidth(elm){
      var BigTd = document.getElementById('TdId');
      document.getElementById(elm).style.width = BigTd.offsetWidth + "px";
  }
</script>

/mvh
</bole>
Avatar billede majbom Novice
03. februar 2009 - 11:42 #9
ja okay, glemte lige px dér...
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester