03. december 2007 - 17:17
Der er
14 kommentarer og 1 løsning
display:"table-row" fejler i IE?
jeg bruger følgende script.: function get_id ($id) { if (document.all && document.getElementById) { return document.all($id); } else if (!document.all && document.getElementById) { return document.getElementById($id); } else { return false; } } function showhide ($id) { if (($bcontent = get_id($id+'c')) && ($img = get_id($id+'i'))) { $bcontent = $bcontent.style; } else { return false; } if ($bcontent.visibility == 'hidden') { $bcontent.display = "table-row"; $bcontent.visibility = 'visible'; $img.src = 'gfx/menu/ar1.gif'; } else { $bcontent.display = 'none'; $bcontent.visibility = 'hidden'; $img.src = 'gfx/menu/ar2.gif'; } } i FF og Opera kan den godt finde ud af at sætte display = table-row, men IE siger følgende: Egenskaben display kunne ikke hentes. Ugyldigt argument. hvad skyldes dette? NB! jeg SKAL bruge table-row, da FF og Opera ikke godtager 'block' når det er en show/hide på en <tr>
Annonceindlæg tema
Forsvar & beredskab
Cybersikkerhed, realtidsdata og robuste it-systemer er blevet fundamentet for moderne forsvar.
03. december 2007 - 17:45
#1
Undskyld, hvis det er lidt off topic, men hvorfor har du funktionen get_id()? document.getElementById() virker jo i samtlige browsere.
03. december 2007 - 18:40
#2
hehe, jeg har jo ikke lavet scriptet selv :) det er faktisk det der bliver brugt på exp.dk's side så vidt jeg ved
03. december 2007 - 18:45
#3
Jaeh, det tror jeg gerne. Læg mærke til den sidste del af exp.dk's kode: </body> </html> <pre> :) Nogen syntes åbenbart, der sku' startes et <pre>-tag efter afslutningen af <html>..
03. december 2007 - 19:04
#4
haha :D ingen er åbenbart perfekt :D
04. december 2007 - 00:34
#5
Du må sætte en tabel-række til at være display:block, hvis du får fat i en browser, der ikke forstår table-row !o] -- måske sådan (absolut utestet !-) if ($bcontent.visibility == 'hidden') { $bcontent.display = "block"; $bcontent.display = "table-row"; $bcontent.visibility = 'visible';
04. december 2007 - 10:22
#6
Virker desværre ikke... kan man evt lave noget !important? eller er vi ude i, at jeg skal finde ud af hvilken browser folk bruger, og så lave den specifik? og hvordan dælan får jeg det flettet ind?
04. december 2007 - 13:23
#7
I hvilken browser virker Roenvings kode ikke?
04. december 2007 - 13:30
#8
Jeg tror faktisk, at du kan nøjes med at gi' tr'en en visibility:collapse; eller visibility:visible; Kan du så ikke helt undgå at sku' bruge display?
04. december 2007 - 13:35
#9
Hmm... Eller... Det er vist ikke så godt understøttet alligevel. Øv.
04. december 2007 - 13:57
#10
den trumfer block igennem :( så det ikke virker i FF og Opera...
04. december 2007 - 16:53
#11
Øv, så må man snyde: <!--[if lte IE 7]> <script type="text/javascript"> var ie = true; </script> <![endif]--> if ($bcontent.visibility == 'hidden') { $bcontent.display = ie ? "block" : "table-row"; $bcontent.visibility = 'visible';
10. december 2007 - 20:01
#12
tak roenving, løsningen blev noget lignende dit, <p class="link" style="cursor:pointer;" id="nr1<? echo $i ?>i" onclick="<? if(strpos($_SERVER['HTTP_USER_AGENT'],"MSIE")) { echo "showhideie"; } else { echo "showhideff"; } ?>('nr1<? echo $i ?>')"><? echo $row['navn']; ?></p> smid lige et svar :)
11. december 2007 - 00:10
#13
Velbekomme '-)
19. januar 2008 - 15:36
#14
Lukketid?
25. februar 2008 - 16:24
#15
Tak for point ;~}
Vi tilbyder markedets bedste kurser inden for webudvikling