03. august 2002 - 03:28Der er
23 kommentarer og 1 løsning
variabel i script
Jeg har der her script til at vise/skjule layers med et bestemt id (thaMenu).
<script language="JavaScript"> if (document.layers) { visible = 'show'; hidden = 'hide'; } else if (document.all) { visible = 'visible'; hidden = 'hidden'; } else if (document.getElementById) { visible = 'visible'; hidden = 'hidden'; } var ns = document.layers; var ie = document.all; var dom = document.getElementById; function hideShow() { if (ns) { if (document.thaMenu.visibility == visible) { document.thaMenu.visibility=hide; } else { document.thaMenu.visibility=show; } } else if (ie) { if (document.thaMenu.style.visibility == visible) { document.thaMenu.style.visibility=hidden; } else { document.thaMenu.style.visibility=visible; } } else if (dom) { if (document.getElementById("thaMenu").style.visibility == visible) { document.getElementById("thaMenu").style.visibility=hidden; } else { document.getElementById("thaMenu").style.visibility=visible; } } } </script>
Er det ik muligt at ændre lidt i det, så jeg kan angive hvad der skal vises/skjules i mit link og ikke i scriptet. Der skal vist bruges parametre i funktionen, men så meget ved jeg ik endnu...
Ked af det men det virker fint. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head><script type="text/javascript"> var vis=(document.layers)?'show':'visible'; var gem=(document.layers)?'hide':'hidden'; function getById(id) { obj = (document.layers)?document.layer[id]:(document.all)?document.all[id]:(document.getElementById)?document.getElementById(id):new Object(); obj.css = (document.layers)?obj:obj.style; return obj; } function hideShow(id) { obj = getById(id); if (obj.css.visibility == vis || obj.css.visibility == "") obj.css.visibility=gem; else obj.css.visibility=vis; } </script></head><body> <div id="test">Test</div> <a href="#" onclick="hideShow('test');return false;">test</a> </body></html>
Nej. NS4 kender ikke div, men kun layer, som til gengæld fungerer på præcis samme måde (og endda i nogle henseender er lidt smartere). Derfor kan man evt. ændre denne linje i scriptet:
evt. var layer = (document.layers)?"layer":"div"; imellem dine script tags i head. og <script> document.write("<"+layer+" id=\"mitLag\">Tekst</"+layer+">"); </script> nede i dokumentet. Jow jow. i øvrigt oversætter NS4 <div style="position:absolute;"> til <layer> og <div style="position:relative;"> til <ilayer> men desværre uden at genkende eventhandlers.
idéen med <div><layer> ser ikke ud til at virke i NS6
Synes godt om
Slettet bruger
05. august 2002 - 12:04#24
Af én eller anden grund ser NS6 ud til at genkende <layer>-tagget og reagere på dets style-property... Meget mystisk! Men så må du jo bruge maddogs løsning! :)
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.