Meila: xhtml javascript

Hallo!

Also ich habe hier schon bereits im Forum rumgeschaut und dann festgestellt, dass ein CDATA um den ganzen Javascriptblock muss.
Das habe ich dann auch versucht, aber immernoch nicht funktioniert das ganze.

Also
Ich möchte Bilder die sich von alleine weiterblättern haben. Unter test.html geht das auch wunderbar. unter test.xhtml aber nicht. So dann wie gesagt habe ich den Block mit
<script type="text/javascript">
/* <![CDATA[ */
// content of your Javascript goes here
/* ]]> */
</script>
eingekesselt.
jetzt kommt die meldung:
ist wohl keine formatierung (oder so) mit der Datei verknüpft, deswegen wird der xml-baum angezeigt. Es ist aber eine .css verbunden.

Weiss jemand mehr?

Danke, Meila

Also das ist übrigens die Datei:

<?xml version="1.0" encoding="iso-8891-1" ?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"html://w3.org/TR/xhtml1/DTD/xhtml-transitional.dtd">
<html>

<head>

<link rel="stylesheet" media="screen" type="text/css" title="mainStyleSheet" href="rrg_css.css" />
   <link rel="alternate stylesheet" title="choclate" media="screen" type="text/css"  />

<title>
JavaScript - Beispiel
</title>

<script type="text/javascript">

/*<![CDATA[*/
var namen=new Array("geburtstagZahl1.gif" ,"grueneStriche.gif", "60.gif" , "dunkelgrueneStriche.gif" );
  /* Array aller Bildernamen */
var bilder=new Array();
  /* Definition des Bilder-Arrays */
var nr=0;

function lade()
  /* Laedt die Bilder */
{
  var i;                     /* lokale Variablendeklaration */
  for (i=0;i<4;i++)          /* Schleife: i=0..3 */
  {
    bilder[i]=new Image();   /* neues Image-Objekt erzeugen */
    bilder[i].src=namen[i];  /* Quelldateiname des Bildes setzen */
  }
    /* Timeout auf 500 Millisekunden setzen : */
  window.setTimeout("naechstes()",500);
}

function naechstes()
  /* zeigt ein Bild an */
{
  nr=(nr+1)%4;    /* Bild hochzaehlen und mod 4 */
    /* Bild austauschen : */
  document.images["bilder"].src=bilder[nr].src;
    /* Timeout auf 500 Millisekunden setzen : */
  window.setTimeout("naechstes()",500);
}
/* ]]> */
</script>

</head>
<body onLoad="lade();">
<div id="oben">
<div id="inhalt">
  <img src="./zahl60.gif" width="150" height="150" alt="60" />
 1
<a href="bilder2.html">Erklrung</a>
2
<img name="bilder" src="begin.gif" width="64" height="64" />
<a href="test.html">test.html</a>
</div>
</div>
</body>
</html>

  1. Hallo!

    Tag auch,

    Also das ist übrigens die Datei:

    <?xml version="1.0" encoding="iso-8891-1" ?>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "html://w3.org/TR/xhtml1/DTD/xhtml-transitional.dtd">
    <html>

    ist nicht soooo prickelnd

    <!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="en" lang="en">  
    ...  
    
    

    halte ich für besser.

    <script type="text/javascript">
    /* <![CDATA[ */
    // content of your Javascript goes here
    /* ]]> */
    </script>
    eingekesselt.

    "einkesseln" von Code? Was ist das denn?!

    Du solltest den Code mit

      
            <script type="text/javascript">  
        /*<![CDATA[*/  
         <!--  
                // content for Javascript goes here  
         //-->  
         /*]]>*/  
            </script>  
    
    

    für die Browserausgabe unsichtbar machen!

    jetzt kommt die meldung:
    ist wohl keine formatierung (oder so) mit der Datei verknüpft, deswegen wird der xml-baum angezeigt. Es ist aber eine .css verbunden.

    Also mit dieser "Fehlermeldung" kann ich gar nichts anfangen!

    Gruß
    cross

    1. @@cross:

      <?xml version="1.0" encoding="iso-8891-1" ?>

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "html://w3.org/TR/xhtml1/DTD/xhtml-transitional.dtd">
      <html>
      ist nicht soooo prickelnd

      Ja, IEs sollten nicht in den Quirks-Modus geschickt werden.

      <!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="en" lang="en">
      ...

      
      > halte ich für besser.  
        
      Njein. Keine XML-Deklaration wegen sonst Quirks-Modus im IE 6 – ja.  
        
      Namespace-Angabe im Wurzel-Element – hm ja, [[XHTML1 §3.1.1](http://edition-w3c.de/TR/2002/REC-xhtml1-20020801/#heading-3.1.1%C2%A0)] sagt sowas. Allerdings lese ich aus [[XML §3.3.2](http://edition-w3c.de/TR/2000/REC-xml-20001006/#sec-attr-defaults)] nicht heraus, warum das 'xmlns'-Attribut (#FIXED) Pflicht sein sollte.  
        
      "en"? Nein! Bei 'xml:lang'/'lang' sollte nicht pauschal "en" angegeben werden, sondern die tatsächliche Sprache! In dem Fall also "de".  
        
        
      
      > Du solltest den Code mit  
      > ~~~javascript
        
      
      >         <script type="text/javascript">  
      >     /*<![CDATA[*/  
      >      <!--  
      >             // content for Javascript goes here  
      >      //-->  
      >      /*]]>*/  
      >         </script>  
      > 
      
      

      für die Browserausgabe unsichtbar machen!

      NEIN!! Das ist grober Unfug! So alte Browser, die dieses Versteckspiel nötig hätten, gibt es nicht mehr.

      <script type="text/javascript">  
      [code lang=javascript]//[code lang=xml]<![CDATA[
      

      // content of your Javascript goes here
      //]]>[/code]
      </script>[/code]

      und gut ist.

      Live long and prosper,
      Gunnar

      --
      Erwebsregel 208: Manchmal ist das einzige, was gefährlicher als eine Frage ist, eine Antwort.
      1. Hallo,

        Allerdings lese ich aus [XML §3.3.2] nicht heraus, warum das 'xmlns'-Attribut (#FIXED) Pflicht sein sollte.

        Woran erkennt der Browser sonst XHTML-Markup, wenn nicht am Namespace? In welchem Namensraum sollen sich Elemente befinden, wenn keine Namensraumangabe existiert? (Klar, in keinem. Das ist ja das Problem.)

        Mathias

        1. hallo !!

          Erstmal danke fuer die Antworten, aber leider muss ich sagen, dass ich ja eben die Ideen schon ausprobierte.
          Ich habe mittlerweile rausgefunden, dass es wirklich am xhtml liegt, denn ich habe das ganze mal unter .html abgespeichert und die xhtmlspezifischen Sachen raus gemacht. Dann tut das, also muss es an dem xml liegen.
          Das Auskommentieren von CDATA hatte ich ja schon versucht und die ganzen xml-attribute hatte ich ja auch shcon mal drin. Ich such jetzt mal nach dem onload. Aber komisch ist es schon.
          Sehe ich es richtig, dass es so im Prinzip schon richtig war?

          Achja

          @ Gunnar: achwas, echt? Krass, ok, dann kann es das sein, dann suche ich nach dem richtigem Attribut wohl mal als erstes

          @all
          <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
          da dachte ich, dass das nicht wirklich nötig ist, da es ja wegen der Sprache für andere Medien noch nötig ist (dacht ich)

          @cross:
          hab mit deiner Antwort leider nicht viel anfangen können.
          einkesseln, sollte etwas zwischen kapseln, einbinden und umrahmen bedeuten. Wenn du das optimale Wort kennst, dann verrate das doch bitte;).

          1. HALLO!

            Es tut!!!!!!!! onload:)

            Danke

          2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
            da dachte ich, dass das nicht wirklich nötig ist, da es ja wegen der Sprache für andere Medien noch nötig ist (dacht ich)

            und wie es nötig ist ;) - ordentliche screenreader sprechen je nach sprache anders - wenn jemand versucht, deutschen text mit englischer betonung auszusprechen oder umgekehrt, wirds meistens unverständlich

            natürlich gibts auch viele andere gründe, die natürliche sprache des dokuements korrekt anzugeben - aber am besten selbst ausprobieren, die 40-minuten-demo von jaws, welche nur englisch sprechen kann, ist kostenlos ;)

            1. aber am besten selbst ausprobieren, die 40-minuten-demo von jaws, welche nur englisch sprechen kann, ist kostenlos ;)

              Hm? Kann die deutsche Version nicht mehrere Sprachen? Müssen bei der Installation ggf. aktiviert werden.

              Mathias

              1. Hm? Kann die deutsche Version nicht mehrere Sprachen? Müssen bei der Installation ggf. aktiviert werden.

                muss ich mal ausprobieren - ich verwende jaws nur für grundlegende tests, da ist mir eigentlich egal ob die betonung bzw aussprache passt oder nicht ;) ich teste damit nur, ob das vorgelesene logisch von der reihenfolge her stimmig ist

                aber werd bei zeiten mal die deutsche demo ausprobieren, die kannte ich noch nicht - danke für den link

        2. @@molily:

          Woran erkennt der Browser sonst XHTML-Markup, wenn nicht am Namespace?

          'xmlns' ist in der XHTML-DTD als #FIXED mit Vorgabewert deklariert. „Falls ein Vorgabewert deklariert ist, verhält sich ein XML-Prozessor bei einem weggelassenen Attribut so, als ob das Attribut mit dem Vorgabewert im Dokument stünde.“ [XML §3.3.2] Das sollte also genügen und ein explizites 'xmlns'-Attribut im XML-Dokument überflüssig machen – für validierende XML-Prozessoren.

          „[Es] kann in der Praxis zu Schwierigkeiten führen, wenn die Namensraum-Deklaration nicht direkt im XML-Dokument-Entity angegeben wird, sondern über einen voreingestellten Wert in einem externen Entity. Diese Deklarationen können eventuell nicht von Software verarbeitet werden, die auf nicht validierenden XML-Prozessoren aufbaut. Viele XML-Anwendungen, vermutlich auch Namensraum-sensitive, versäumen es, validierende Prozessoren zu fordern. Um eine korrekte Zusammenarbeit mit solchen Anwendungen zu gewährleisten, müssen Namensraum-Deklarationen entweder direkt oder über voreingestellte Attribute im internen Subset der DTD  angegeben werden.“ [XML-NAMES §4]

          Besser ist also, den Namensraum fürs Wurzelelement im XHTML-Dokument anzugeben. Vermutlich fordert es die XHTML-Spezifikation deshalb.

          Live long and prosper,
          Gunnar

          --
          Erwebsregel 208: Manchmal ist das einzige, was gefährlicher als eine Frage ist, eine Antwort.
          1. Danke für die Erklärung!

            Mathias

  2. @@Meila:

    <body onLoad="lade();">

    Es gibt in XHTML http://de.selfhtml.org/html/xhtml/unterschiede.htm#kleinschreibung@title=kein Attribut "onLoad".

    Live long and prosper,
    Gunnar

    --
    Erwebsregel 208: Manchmal ist das einzige, was gefährlicher als eine Frage ist, eine Antwort.