[XSL] Javascript werkt niet helemaal

Pagina: 1
Acties:

  • Zoolander
  • Registratie: Januari 2003
  • Laatst online: 23-11-2022

Zoolander

superslim!

Topicstarter
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">

<xsl:output method="html" />

<xsl:template match="/">
<html>
    <head>
        <title> XML Quiz </title>
        <link rel="stylesheet" href="style.css" type="text/css" />
        <script language="javascript">
        <xsl:comment><![CDATA[

            var seconds = 25;
            var questions = 7;
                                    
            function _wait() {

                time.innerHTML = 'Resterende tijd: '+seconds;

                if(seconds <= 0) {
                    clearTimeout(timerId);          
                    
                    for(i=0; i<questions; i++) {                
                        document.getElementById(i).style.visibility = 'hidden';
                    }

                    time.innerHTML = 'Resterende tijd: 0';          
                    end.innerHTML = 'Jammer, tijd is op. Klik om <a href=quiz.htm>nog een keer te proberen</a> <br /><br /> [img]images/noob.gif[/img]';

                } else {
                    timerId = setTimeout("_wait()",1000);
                    document.getElementById('sound').src = 'sound.wav';
                    seconds = seconds -1;               
                }

            }

            function _verify(input) {
                
                if(input.value == "true") {
                    input.parentNode.style.visibility="hidden";

                    if (input.parentNode.nextSibling && input.parentNode.nextSibling.className == 'question'){
                        input.parentNode.nextSibling.style.visibility="visible";
                    } else {
                        clearTimeout(timerId);
                        end.innerHTML = 'Ziek figuur! Het is niet gezond dat je deze quiz haalde! Zeker niet met een deze eindtijd. <br> ZOEK HULP! <br /><br /> [img]images/nurse.gif[/img]';
                    }
                        
                } else {
                    seconds = seconds - 10;
                    input.style.visibility="hidden";
                }

            }
    
        ]]>//</xsl:comment>
        </script>
    </head>

    <body onload="_wait()">

        <div class="timer"><h3 id="time"></h3></div>
        <div style="position:absolute; left:50px; top:75px; font-family: verdana; font-weight: bold;" id="end"></div>
        <bgsound id="sound" loop="1" />
                
        <xsl:apply-templates select="quiz/statement" /> 

     <script language="javascript">

        document.getElementById('0').parentNode.style.visibility = "visible";

    </script>
                
    </body>
</html>
</xsl:template>

    
    <!-- Parse all available questions of the XML document -->
    <xsl:template match="statement">
    <div class="question">
    <div><h3><xsl:value-of select="question" /></h3></div> 

        <xsl:for-each select="answer">
            <div class="choice" id="{../@id}" value="{@trace}" onClick="_verify(this);">
                <xsl:value-of select="@value" /> 
            </div> 
        </xsl:for-each>
        
        <div><br /><img>
            <xsl:attribute name="src"><xsl:value-of select="image" /></xsl:attribute>           
        </img></div>
    </div>


    </xsl:template>

</xsl:stylesheet>


Op regel 24 staat een voorlus die ALLE layers met een ID op hidden moet zetten, maar dat doet ie gewoon niet!
Voor de rest werkt het wel.

PS. dit is mijn eerste XML/XSL doc hoor ;)

Weet iemand wat ik verkeerd doe? Kom er maar niet uit.

mijn naam slaat nergens op, althans niet op mij :P


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 10-05 18:53

Bosmonster

*zucht*

Een ID mag niet met een cijfer beginnen :)

Gewoon ff een lettertje voorzetten dus.

[ Voor 34% gewijzigd door Bosmonster op 08-12-2003 15:32 ]


  • Zoolander
  • Registratie: Januari 2003
  • Laatst online: 23-11-2022

Zoolander

superslim!

Topicstarter
Heh? Sinds wanneer? In Javascript mag dat toch wel? Is dat alleen in XML ofzo?

Werkt overigens ook niet, net getest :(

[ Voor 23% gewijzigd door Zoolander op 08-12-2003 17:58 ]

mijn naam slaat nergens op, althans niet op mij :P


Verwijderd

Zoolander schreef op 08 december 2003 @ 17:55:
Heh? Sinds wanneer? In Javascript mag dat toch wel? Is dat alleen in XML ofzo?
http://www.w3.org/TR/html4/types.html#type-name
ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").

  • Zoolander
  • Registratie: Januari 2003
  • Laatst online: 23-11-2022

Zoolander

superslim!

Topicstarter
Ok, maar heeft iemand ook een oplossing?

Heb het nu werkerd, maar weet niet waarom echt.... maar met ID als # werkt wel, maar is geen standaard dus verkeerd? Met for-lusjes is het namelijk wel errug handig.

[ Voor 68% gewijzigd door Zoolander op 08-12-2003 18:17 ]

mijn naam slaat nergens op, althans niet op mij :P


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 15:55

crisp

Devver

Pixelated

ja, maar je kan toch ook gewoon:
JavaScript:
1
getElementById('d'+i)

doen, en dan id="d1", id="d2" etc. gebruiken?

Intentionally left blank


  • Zoolander
  • Registratie: Januari 2003
  • Laatst online: 23-11-2022

Zoolander

superslim!

Topicstarter
jah, waar. Maar snap niet waarom ze dat in XML hebben verzonnen dat een ID geen # mag zijn. Maar d+i kan ook.

mijn naam slaat nergens op, althans niet op mij :P


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 15:55

crisp

Devver

Pixelated

Zoolander schreef op 08 december 2003 @ 20:01:
jah, waar. Maar snap niet waarom ze dat in XML hebben verzonnen dat een ID geen # mag zijn. Maar d+i kan ook.
XML != XHTML
XHTML is gewoon well-formed HTML, en moet verder dus ook aan de XHTML standaarden voldoen. Die schrijft voor dat een ID met een letter moet beginnen.

Intentionally left blank


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

*psst, crisp
Validity constraint: ID

Values of type ID must match the Name production. A name must not appear more than once in an XML document as a value of this type; i.e., ID values must uniquely identify the elements which bear them.
code:
1
Name       ::=      (Letter | '_' | ':') (NameChar)*
;)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz

Pagina: 1