Avatar billede Slettet bruger
01. juli 2004 - 01:26 Der er 15 kommentarer og
1 løsning

Hvorfor virker dette ikke i alle browsere? Fejl i Scriptet?

Ja, hvorfor virker dette ikke i fx. Firefox? Fejl i Scriptet???

Kildekode:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="da">
<head>
    <title>Master</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <meta http-equiv="Content-Language" content="dk-DK" />

</head>

<body>

                        <table border="0">
                          <tbody>
                          <tr>
                            <td>
                              <a onclick="if (test1.style.display=='none') {test1.style.display=''} else {test1.style.display='none'}" href="java script:void('0');"><b>test 1</b></a>
</td>
                              </tr>
                              </tbody>
                              </table>
                       
                        <table id=test1 width="97%" align=center>
                        <tbody>
                          <tr>
                            <td>test 1</td>
                          </tr>
                        </tbody>
                        </table>

                        <br><br><br>
                       
                        <table border="0">
                          <tbody>
                          <tr>
                            <td>
                              <a onclick="if (test2.style.display=='none') {test2.style.display=''} else {test2.style.display='none'}" href="java script:void('0');"><b>test 2</b></a>
</td>
                              </tr>
                              </tbody>
                              </table>
                       
                        <table id=test2 width="97%" align=center>
                        <tbody>
                          <tr>
                            <td>test 2</td>
                          </tr>
                        </tbody>
                        </table>
                   
<script type="text/javascript">
//hide app features
test1.style.display='none';
test2.style.display='none';
</script>

                </td>
              </tr>
              </tbody>
            </table>

</html>
Avatar billede Slettet bruger
01. juli 2004 - 01:27 #1
Ideen er, at ved klik på link, hhv. åbnes og lukkes der for en undertabel.
Avatar billede Slettet bruger
01. juli 2004 - 01:28 #2
...håber at Roenving stadig er på banen.  ;-)
Avatar billede roenving Novice
01. juli 2004 - 01:29 #3
Du skal udskifte alle forekomster af test1 og -2 i script og events med document.getElementById('test1') !-)

Grunden er, at det at skrive test1 alene forudsætter at browseren kender document.all, som andre browsere ikke kender !o]
Avatar billede Slettet bruger
01. juli 2004 - 01:31 #4
Jeg vidste at du med nemhed kunne gennemskue det! :-))

Men øh... kan du venligst give et eksempel?
Avatar billede roenving Novice
01. juli 2004 - 01:32 #5
Det kan forøvrigt skrives kortere:

<a onclick="st=document.getElementById('test1').style;st.display = (st.display=='none')?'':'none'" href="java script:void('0');"><b>test 1</b></a>
Avatar billede Slettet bruger
01. juli 2004 - 01:34 #6
Du er altså utrolig! :-)  Jeg fik det til at virke nu!

Men jeg fatter ikke: SKAL selve Javascriptet ligge i bunden af dokumentet?
Avatar billede roenving Novice
01. juli 2004 - 01:34 #7
Den anden:

<a onclick="st=document.getElementById('test2').style;st.display = (st.display=='none')?'':'none'" href="java script:void('0');"><b>test 2</b></a>

-- og fjern scriptet, når du kan skrive det direkte i !-)

<table id="test2" width="97%" align="center" style="display:none;">
Avatar billede roenving Novice
01. juli 2004 - 01:36 #8
-- principielt vil jeg anbefale, at den slags script ligger som funktioner, som kaldes onload, men lige i dette tilfælde er der ingen idé i, at det findes, men andre gange kan der være masser af gode grunde til at det bruges !-)

-- og velbekomme '-)
Avatar billede roenving Novice
01. juli 2004 - 01:37 #9
-- og årsagen er, at den slags elementer skal være dannet, og have deres kontekst, ellers kan man selvfølgelig ikke kalde dem !-)
Avatar billede roenving Novice
01. juli 2004 - 01:37 #10
-- og tak for point ;~}
Avatar billede Slettet bruger
01. juli 2004 - 01:38 #11
Perfekt! Det kører som smør nu! :-)
Rigtigt mange tak for din hjælp, kode-super-mand!
Avatar billede Slettet bruger
01. juli 2004 - 01:40 #12
Ok, jeg bliver stadig lidt klogere, hver gang du hjælper mig med lidt forklaring.
Avatar billede roenving Novice
01. juli 2004 - 01:48 #13
document.all blev opfundet af M$, da de skabte IE4, bl.a. som en slags modtræk i browser-krigen, men den eneste anden browser, som har taget den op, er Opera ...

I W3C, hvor M$ selvfølgelig er langt den største spiller, lykkedes det dem ikke at få anderkendt denne ting (bl.a. fordi det principielt går direkte på tværs af det grundlæggende i Document Object Model, oftest kaldet DOM !-)

Ydermere besluttede M$ så, at document.all kunne udelades, ligesom vi ikke så ofte bruger den principielt nødvendige window-ting foran f.eks. parent og andet, fordi dette grundlæggende objekt alligevel altid er tilgængeligt og uundværligt !o]
Avatar billede Slettet bruger
01. juli 2004 - 01:57 #14
Ok, jeg forstår. :-)
Så var det bestemt godt, at M$ IKKE fik gennemtrumfet sit forslag med "document.all"!
Godt at M$ trods alt ikke har mere magt!  :-))

window-ting? Du mener som i "a href" som fx.: target="_blank" og target="_parent" og lign?
Avatar billede Slettet bruger
01. juli 2004 - 02:06 #15
...noget slår mig lige:
For at kunne validere dokumentet, må der vel kun være 1 stk. ID, ikke?
For man kan jo ikke skrive "...getElementByClass...".
Eller er der noget jeg misforstår?
Avatar billede roenving Novice
01. juli 2004 - 11:32 #16
Nej jeg mener, at man principielt skal bruge f.eks. window.parent.frames, men min egen måde at gøre det på er, at jeg bruger window foran funktioner (f.eks. window.open() eller window.print() !-) men ikke, hvis jeg skal have fat i et window-objekt f.eks. opener.document eller top.frames ...

-- og du har helt ret i, at der kun må være eet id i et helt dokument, men der er forskellige veje ind, jeg bruger ret ofte .getElementsByTagName og itererer igennem samlingen !o]
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