Javascript-Schachbrett - Figuren nicht richtig erzeugt
Dominique
- dhtml
Hallo,
ich bin ratlos. Ich habe ein Script, das eigentlich reibungslos laufen müsste, sowohl auf Firefox als auch im IE6.0 (Windows 2000).
Dasselbe Script kommt an zwei Stellen zum Einsatz:
http://goncourt.net/schach/index.php (sozusagen 'standalone')
http://goncourt.net/Blog (als Artikel im Weblog)
Auf einigen IE's (6.0), die auf Windows 98 laufen, werden jedoch die Türme der a-Linie nicht gerendert - anfangs tauchen sie gar nicht auf, später laufen sie Amok. Dies gilt _nur_ im zweiten Link, im Weblog. In der 'standalone'-Version - mit demselben Script, wie gesagt, und einem Style-Sheet, das via Copy/Paste übernommen und um wenige (Farb-)Attribute ergänzt wurde, läuft die Sache problemlos.
Ich hatte die Weblog-Seite auf die Festplatte runtergeladen, auskommentiert, neu arrangiert etc. bis ich rausfand, dass der charset utf-8 [!] schuld war, mit iso-8859-1 ging es. Wie kann das aber sein?
Und trotzdem: mit der entsprechenden Änderung online tauchte der Fehler dennoch wieder auf, obwohl ich bei textpattern die Möglichkeit habe, meine Eingaben 'roh', d.h. ohne dynamische Nachformatierung usw. zu machen, d.h. unter größtmöglicher Kontrolle der schließlich ausgelieferten Datei.
Hat irgendjemand einen Rat?
Die Dateien
http://goncourt.net/schach/schach.js
http://goncourt.net/schach/schachblog.css
http://goncourt.net/schach/schach.css (für die standalone-Version)
Die Datei http://goncourt.net/schach/karpovkasparov.js kann ignoriert werden, weil ihr Weglassen nichts ändert.
Vielleicht nochmal der Header - der wohl das Problem ist:
<!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="de" lang="de">
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" href="http://goncourt.net/Blog/styleabout.css" type="text/css" />
<script type="text/javascript" src="http://goncourt.net/schach/schach.js"> </script>
<link rel="stylesheet" href="http://goncourt.net/schach/schachblog.css" type="text/css" />
<script type="text/javascript" src="http://goncourt.net/schach/karpovkasparov.js"> </script>
<title>Goncourt's Blog</title>
</head>
Danke im voraus
Dominique
Ahoi Dominique,
Vielleicht nochmal der Header - der wohl das Problem ist:
ich wollte das ganze jetzt mal mir anschaun, kann es sein das da was
fehlt? hab das JS und das CSS file geholt aber irgendwie baut er bei mir
das schachbrett garnicht auf.
MfG
Ahoi Dominique,
Vielleicht nochmal der Header - der wohl das Problem ist:
ich wollte das ganze jetzt mal mir anschaun, kann es sein das da was
fehlt? hab das JS und das CSS file geholt aber irgendwie baut er bei mir
das schachbrett garnicht auf.MfG
Das liegt wahrscheinlich daran, dass die entsprechenden Divs, die positioniert werden müssen (brett, figuren - felder werden dynamisch erzeugt) im Body untergebracht sind. Voilà:
<div id="schach" >
<div id="brett" >
<noscript>Strategien des Schweigens.
Trop loin de garder son territoire.
Faire de sa memoire un grand palais
sans empire.</noscript>
</div>
<div id="wB1" class="figur" style="color:#c66">B</div>
<div id="wB2" class="figur" style="color:#c66">B</div>
<div id="wB3" class="figur" style="color:#c66">B</div>
<div id="wB4" class="figur" style="color:#c66">B</div>
<div id="wB5" class="figur" style="color:#c66">B</div>
<div id="wB6" class="figur" style="color:#c66">B</div>
<div id="wB7" class="figur" style="color:#c66">B</div>
<div id="wB8" class="figur" style="color:#c66">B</div>
<div id="wT1" class="figur" style="color:#c66">T</div>
<div id="wT2" class="figur" style="color:#c66">T</div>
<div id="wS1" class="figur" style="color:#c66">S</div>
<div id="wS2" class="figur" style="color:#c66">S</div>
<div id="wL1" class="figur" style="color:#c66">L</div>
<div id="wL2" class="figur" style="color:#c66">L</div>
<div id="wD" class="figur" style="color:#c66">D</div>
<div id="wK" class="figur" style="color:#c66">K</div>
<div id="bB1" class="figur" style="color:#555">B</div>
<div id="bB2" class="figur" style="color:#555">B</div>
<div id="bB3" class="figur" style="color:#555">B</div>
<div id="bB4" class="figur" style="color:#555">B</div>
<div id="bB5" class="figur" style="color:#555">B</div>
<div id="bB6" class="figur" style="color:#555">B</div>
<div id="bB7" class="figur" style="color:#555">B</div>
<div id="bB8" class="figur" style="color:#555">B</div>
<div id="bT1" class="figur" style="color:#555">T</div>
<div id="bT2" class="figur" style="color:#555">T</div>
<div id="bS1" class="figur" style="color:#555">S</div>
<div id="bS2" class="figur" style="color:#555">S</div>
<div id="bL1" class="figur" style="color:#555">L</div>
<div id="bL2" class="figur" style="color:#555">L</div>
<div id="bD" class="figur" style="color:#555">D</div>
<div id="bK" class="figur" style="color:#555">K</div>
<div style="position:absolute; top:350px;left:20px;font-size:0.7em">
<a href="javascript: run(0)">start</a>
<a href="javascript: zurueck()">zurück</a>
<a href="javascript: vor()">vor</a>
<a href="javascript: run(84)">fin</a>
</div>
</div>
(#schachbrett ist relativ positioniert, um für die anderen absolut positionierten Divs den Orientierungsrahmen zu geben)
Hier übrigens nocmal die Url des einzelnen Artikels, falls der von der Startseite verschwindet: http://goncourt.net/Blog/article/784/
Hallo Dominique.
ich wollte das ganze jetzt mal mir anschaun, kann es sein das da was
fehlt? hab das JS und das CSS file geholt aber irgendwie baut er bei mir
das schachbrett garnicht auf.MfG
Das liegt wahrscheinlich daran, dass die entsprechenden Divs, die positioniert werden müssen (brett, figuren - felder werden dynamisch erzeugt) im Body untergebracht sind.
Warum erzeugst du die entsprechenden Elemente nicht auch per JS und hängst sie im Dokumentenbaum ein?
Einen schönen Freitag noch.
Gruß, Ashura
Warum erzeugst du die entsprechenden Elemente nicht auch per JS und hängst sie im Dokumentenbaum ein?
Das Problem ist gelöst. Das Weblogsystem hat mir unter der Hand doch utf-8 untergejubelt. Das ist mir erst durch den Validator aufgefallen (warum kommt das eigentlich nicht im Quelltext vor?)
Die entsprechende Änderung am System habe ich vorgenommen, seitdem funktioniert das Script. Obwohl ich immer noch nicht ganz einsehe, was das eine mit dem anderen zu tun hat (muß wohl an der XHTML-Konformität liegen, dass der IE nicht mehr korrekt arbeitete).
Den Vorschlag von Ashura werde ich mir dennoch ansehen.
Danke an Euch für die Mühe!
Schönes Wochenende
Dominique
Obwohl ich immer noch nicht ganz einsehe, was das eine mit dem anderen zu tun hat (muß wohl an der XHTML-Konformität liegen, dass der IE nicht mehr korrekt arbeitete).
Der Vollständigkeit halber: mir scheint, ich habe den Grund gefunden:
vgl. http://de.selfhtml.org/html/transit/scripts.htm#weitere
Hier wird auch bei der Einbindung der charset angegeben: <script type="text/javascript" src="..." charset="utf-8"></script>
Offenbar verursachen sonst auch Zeichen wie # oder {} Konflikte.